Difference between revisions of "Nicegui widgets/Tutorial"
Line 29: | Line 29: | ||
== pyproject.toml == | == pyproject.toml == | ||
− | https://raw.githubusercontent.com/WolfgangFahl/ConferenceCorpus/main/pyproject.toml | + | [https://raw.githubusercontent.com/WolfgangFahl/ConferenceCorpus/main/pyproject.toml pyproject.toml] |
<code>pyproject.toml</code> is a configuration file used in Python projects to define project metadata, dependencies, | <code>pyproject.toml</code> is a configuration file used in Python projects to define project metadata, dependencies, | ||
Line 38: | Line 38: | ||
to building and managing Python projects, aligning well with the standardized structure provided by | to building and managing Python projects, aligning well with the standardized structure provided by | ||
<code>pyproject.toml</code>. Learn more about Hatchling at [https://github.com/pypa/hatch Hatchling on GitHub]. | <code>pyproject.toml</code>. Learn more about Hatchling at [https://github.com/pypa/hatch Hatchling on GitHub]. | ||
+ | |||
+ | This '''pyproject.toml''' file configures the Python project 'ConferenceCorpus', an API for accessing academic events and event series from different sources. | ||
+ | |||
+ | == Build System == | ||
+ | The <code>[build-system]</code> section specifies that the project uses 'hatchling' as its build backend, with: | ||
+ | <source lang="toml"> | ||
+ | [build-system] | ||
+ | requires = ["hatchling"] | ||
+ | build-backend = "hatchling.build" | ||
+ | </source> | ||
+ | More about Hatchling: [https://github.com/pypa/hatch Hatchling on GitHub]. | ||
+ | |||
+ | == Project Information == | ||
+ | The <code>[project]</code> section includes basic information about the project: | ||
+ | <source lang="toml"> | ||
+ | [project] | ||
+ | name = "ConferenceCorpus" | ||
+ | description = "python api providing access to academic events and event series from different sources" | ||
+ | home-page = "http://wiki.bitplan.com/index.php/ConferenceCorpus" | ||
+ | readme = "README.md" | ||
+ | license = {text = "Apache-2.0"} | ||
+ | authors = [{name = "Wolfgang Fahl", email = "wf@WolfgangFahl.com"}] | ||
+ | maintainers = [{name = "Wolfgang Fahl", email = "wf@WolfgangFahl.com"}] | ||
+ | requires-python = ">=3.9" | ||
+ | classifiers = [ | ||
+ | 'Programming Language :: Python', | ||
+ | ... | ||
+ | ] | ||
+ | dynamic = ["version"] | ||
+ | </source> | ||
+ | The project's homepage: [https://raw.githubusercontent.com/WolfgangFahl/ConferenceCorpus/main/pyproject.toml pyproject.toml]. | ||
+ | |||
+ | == Version Control == | ||
+ | Version control is dynamically set using the <code>[tool.hatch.version]</code> section: | ||
+ | <source lang="toml"> | ||
+ | [tool.hatch.version] | ||
+ | path = "corpus/__init__.py" | ||
+ | </source> | ||
+ | |||
+ | == Dependencies == | ||
+ | The <code>dependencies</code> list includes various libraries required by the project: | ||
+ | <source lang="toml"> | ||
+ | dependencies = [ | ||
+ | "pylodstorage>=0.4.9", | ||
+ | ... | ||
+ | ] | ||
+ | </source> | ||
+ | |||
+ | == Optional Dependencies and Scripts == | ||
+ | The file also defines optional dependencies under <code>[project.optional-dependencies]</code> and various scripts under <code>[project.scripts]</code> for different functionalities of the project: | ||
+ | <source lang="toml"> | ||
+ | [project.optional-dependencies] | ||
+ | test = ["green",] | ||
+ | |||
+ | [project.scripts] | ||
+ | aelookup = "corpus.lookup:main" | ||
+ | ... | ||
+ | </source> | ||
+ | |||
+ | == Project URLs == | ||
+ | Lastly, the <code>[project.urls]</code> section provides links to the project's home, source, and documentation: | ||
+ | <source lang="toml"> | ||
+ | [project.urls] | ||
+ | Home = "http://wiki.bitplan.com/index.php/ConferenceCorpus" | ||
+ | Source = "https://github.com/WolfgangFahl/ConferenceCorpus" | ||
+ | Documentation = "https://github.com/WolfgangFahl/ConferenceCorpus/issues" | ||
+ | </source> |
Revision as of 09:19, 18 November 2023
Example Usecase
This tutorial uses the ConferenceCorpus as it's usecase. As part of my research for the ConfIDent Project i am gathering metadata for scientific events from different datasources. There has been a lack of a proper frontend for the past few years although there have been several attempts to create a webserver and RESTFul services e.g. with
As of 2023-11 the project is now migrated to [nicegui https://nicegui.io/] using the nicegui widgets (demo)
Setting up the project
The project is on github see ConferenceCorpus
README
A GitHub README is a document that introduces and explains a project hosted on GitHub, providing essential information such as its purpose, how to install and use it, and its features. It is important because it serves as the first point of contact for anyone encountering the project, helping them understand what the project is about and how to engage with it.
The README consists of
- header
- badges
- link to demo
- example API calls
- links to documentation
- authors list
README screenshot as of start of migration
License
The LICENSE file in a software project specifies the legal terms under which the software can be used, modified, and shared, defining the rights and restrictions for users and developers. Using the Apache License is a good choice for many projects because it is a permissive open-source license that allows for broad freedom in use and distribution, while also providing legal protection against patent claims and requiring preservation of copyright notices.
pyproject.toml
pyproject.toml
is a configuration file used in Python projects to define project metadata, dependencies,
and build system requirements, providing a consistent and standardized way to configure Python projects.
For more information, see pyproject.toml documentation.
Hatchling is a popular choice for a build system because it offers a modern, fast, and straightforward approach
to building and managing Python projects, aligning well with the standardized structure provided by
pyproject.toml
. Learn more about Hatchling at Hatchling on GitHub.
This pyproject.toml file configures the Python project 'ConferenceCorpus', an API for accessing academic events and event series from different sources.
Build System
The [build-system]
section specifies that the project uses 'hatchling' as its build backend, with:
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
More about Hatchling: Hatchling on GitHub.
Project Information
The [project]
section includes basic information about the project:
[project]
name = "ConferenceCorpus"
description = "python api providing access to academic events and event series from different sources"
home-page = "http://wiki.bitplan.com/index.php/ConferenceCorpus"
readme = "README.md"
license = {text = "Apache-2.0"}
authors = [{name = "Wolfgang Fahl", email = "wf@WolfgangFahl.com"}]
maintainers = [{name = "Wolfgang Fahl", email = "wf@WolfgangFahl.com"}]
requires-python = ">=3.9"
classifiers = [
'Programming Language :: Python',
...
]
dynamic = ["version"]
The project's homepage: pyproject.toml.
Version Control
Version control is dynamically set using the [tool.hatch.version]
section:
[tool.hatch.version]
path = "corpus/__init__.py"
Dependencies
The dependencies
list includes various libraries required by the project:
dependencies = [
"pylodstorage>=0.4.9",
...
]
Optional Dependencies and Scripts
The file also defines optional dependencies under [project.optional-dependencies]
and various scripts under [project.scripts]
for different functionalities of the project:
[project.optional-dependencies]
test = ["green",]
[project.scripts]
aelookup = "corpus.lookup:main"
...
Project URLs
Lastly, the [project.urls]
section provides links to the project's home, source, and documentation:
[project.urls]
Home = "http://wiki.bitplan.com/index.php/ConferenceCorpus"
Source = "https://github.com/WolfgangFahl/ConferenceCorpus"
Documentation = "https://github.com/WolfgangFahl/ConferenceCorpus/issues"