Difference between revisions of "Nicegui widgets/Tutorial"

From BITPlan Wiki
Jump to navigation Jump to search
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 10: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

CcReadme2023-11-18.jpg

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.

LICENSE

pyproject.toml

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"