REUSE compliance of PythonWoods/structum

Unfortunately, github.com/PythonWoods/structum is not REUSE compliant and does not fully adopt the recommendations to make software licensing easy for humans and machines alike. Have a look at our tutorial to learn about the three simple steps to become REUSE compliant.

Badge

To add the badge to your project's README.md file, use the following snippet:

[![REUSE status](https://api.reuse.software/badge/github.com/PythonWoods/structum)](https://api.reuse.software/info/github.com/PythonWoods/structum)

Machine-readable information

The API provides machine-readable artifacts for automatic analysis.

  • All information about the latest compliance check can also be accessed via a machine-parsable JSON file.
  • You can gather the automatically generated SPDX SBOM in Tag:Value format, based on the reuse spdx command.

Last lint output

Commit 66d71a2d17be1b48031b9d8ebcfc5b7d7c8769b5 was checked on 25 Jan 2026 03:10:11 UTC with the following result:

/opt/venv/lib/python3.11/site-packages/reuse/project.py:332: PendingDeprecationWarning: '.reuse/dep5' is deprecated. You are recommended to instead use REUSE.toml. Use `reuse convert-dep5` to convert.
  warnings.warn(
/opt/venv/lib/python3.11/site-packages/reuse/project.py:332: PendingDeprecationWarning: '.reuse/dep5' is deprecated. You are recommended to instead use REUSE.toml. Use `reuse convert-dep5` to convert.
  warnings.warn(
# MISSING LICENSES

'Apache-2.0' found in:
* .github/ISSUE_TEMPLATE/bug_report.md
* .github/ISSUE_TEMPLATE/feature_request.md
* .github/ISSUE_TEMPLATE/plugin_proposal.md
* .github/PULL_REQUEST_TEMPLATE.md
* .github/dependabot.yml
* .github/workflows/ci.yml
* .github/workflows/deploy-docs.yml
* .github/workflows/release.yml
* .gitignore
* .markdownlint.yaml
* .pre-commit-config.yaml
* .readthedocs.yaml
* ARCHITECTURE.md
* CHANGELOG.md
* CODE_OF_CONDUCT.md
* CONTRIBUTING.md
* CONTRIBUTORS.md
* README.md
* ROADMAP.md
* SECURITY.md
* bandit.toml
* docs/_headers
* docs/_intersphinx/python.inv
* docs/_snippets/core_modules_list.rst
* docs/_snippets/example_minimal.rst
* docs/_snippets/install_quick.rst
* docs/_snippets/install_source.rst
* docs/_snippets/plugins_list.rst
* docs/_snippets/verify_install.rst
* docs/_snippets/warning_alpha.rst
* docs/_static/custom.css
* docs/cli/api.rst
* docs/cli/commands.rst
* docs/cli/index.rst
* docs/cli/profiling.rst
* docs/cli/release.rst
* docs/cli/security.rst
* docs/cli/testing.rst
* docs/conf.py
* docs/constitution.rst
* docs/contributing/code_of_conduct.rst
* docs/contributing/documenting.rst
* docs/contributing/index.rst
* docs/contributing/releasing.rst
* docs/contributing/review_checklist.rst
* docs/contributing/style_guide.rst
* docs/glossary.rst
* docs/google06a72fc7473b211a.html
* docs/governance/ai_assisted.rst
* docs/governance/amendment_policy.rst
* docs/governance/exit_strategy.rst
* docs/governance/licensing.rst
* docs/governance/plugin_standards.rst
* docs/governance/seo.rst
* docs/guides/anti_patterns.rst
* docs/guides/archiving_code.rst
* docs/guides/configuration_getting_started.rst
* docs/guides/configuration_philosophy.rst
* docs/guides/core_vs_plugins.rst
* docs/guides/developer_tutorial.rst
* docs/guides/enterprise_architecture.rst
* docs/guides/index.rst
* docs/guides/integration_patterns.rst
* docs/guides/observability_stack.rst
* docs/guides/user_tutorial.rst
* docs/index.rst
* docs/installation.rst
* docs/mental_model.rst
* docs/modules/auth.rst
* docs/modules/configuration.rst
* docs/modules/database.rst
* docs/modules/index.rst
* docs/modules/logging.rst
* docs/modules/monitoring.rst
* docs/performance/optimization.rst
* docs/plugins/archive-html.rst
* docs/plugins/archive-json.rst
* docs/plugins/archive-markdown.rst
* docs/plugins/archive-zip.rst
* docs/plugins/auth.rst
* docs/plugins/bootstrap.rst
* docs/plugins/cli-tools.rst
* docs/plugins/database.rst
* docs/plugins/development.rst
* docs/plugins/di.rst
* docs/plugins/dynaconf.rst
* docs/plugins/fastapi.rst
* docs/plugins/index.rst
* docs/plugins/observability.rst
* docs/quick_reference.rst
* docs/reference/archive/index.rst
* docs/reference/auth.rst
* docs/reference/bootstrap.rst
* docs/reference/cli-tools.rst
* docs/reference/core/auth.rst
* docs/reference/core/config.rst
* docs/reference/core/database.rst
* docs/reference/core/logging.rst
* docs/reference/core/monitoring.rst
* docs/reference/core/plugins.rst
* docs/reference/core/validation.rst
* docs/reference/core.rst
* docs/reference/database.rst
* docs/reference/di.rst
* docs/reference/dynaconf.rst
* docs/reference/fastapi.rst
* docs/reference/index.rst
* docs/reference/meta.rst
* docs/reference/observability.rst
* docs/reference/plugins.rst
* docs/reference/protocols.rst
* docs/requirements.txt
* docs/robots.txt
* docs/why.rst
* examples/01-logging-basics/README.md
* examples/02-observability-full/README.md
* examples/03-zero-config/README.md
* examples/04-web-integration/README.md
* examples/05-archiving/README.md
* examples/05-event-driven/README.md
* examples/05-standalone-plugins/README.md
* examples/06-cli-tool/README.md
* examples/07-background-workers/README.md
* examples/08-full-stack/README.md
* examples/09-deployment-patterns/README.md
* examples/10-di-fastapi/README.md
* examples/11-archiving-code/README.md
* examples/11-archiving-code/sample.py
* examples/README.md
* examples/advanced/README.md
* examples/beginner/README.md
* examples/intermediate/README.md
* packages/archive-html/README.md
* packages/archive-html/pyproject.toml
* packages/archive-html/tests/test_archive_html_dummy.py
* packages/archive-json/README.md
* packages/archive-json/pyproject.toml
* packages/archive-json/src/structum/plugins/archive_json/schema.json
* packages/archive-json/tests/test_archive_json_dummy.py
* packages/archive-markdown/README.md
* packages/archive-markdown/pyproject.toml
* packages/archive-markdown/tests/test_archive_markdown_dummy.py
* packages/archive-zip/README.md
* packages/archive-zip/pyproject.toml
* packages/archive-zip/tests/test_archive_zip_dummy.py
* packages/auth/README.md
* packages/auth/pyproject.toml
* packages/auth/src/structum/plugins/auth/base.py
* packages/auth/src/structum/plugins/auth/jwt.py
* packages/auth/src/structum/plugins/auth/oauth.py
* packages/auth/src/structum/plugins/auth/password.py
* packages/auth/src/structum/plugins/auth/rbac.py
* packages/auth/tests/conftest.py
* packages/auth/tests/test_auth_dummy.py
* packages/bootstrap/README.md
* packages/bootstrap/pyproject.toml
* packages/bootstrap/src/structum/plugins/bootstrap/__init__.py
* packages/bootstrap/src/structum/plugins/bootstrap/core.py
* packages/bootstrap/src/structum/plugins/bootstrap/manager.py
* packages/bootstrap/src/structum/plugins/bootstrap/validators.py
* packages/bootstrap/tests/conftest.py
* packages/bootstrap/tests/test_bootstrap_dummy.py
* packages/cli-tools/README.md
* packages/cli-tools/pyproject.toml
* packages/cli-tools/src/structum/plugins/cli_tools/__init__.py
* packages/cli-tools/src/structum/plugins/cli_tools/api.py
* packages/cli-tools/src/structum/plugins/cli_tools/archive.py
* packages/cli-tools/src/structum/plugins/cli_tools/checks.py
* packages/cli-tools/src/structum/plugins/cli_tools/main.py
* packages/cli-tools/src/structum/plugins/cli_tools/profiling.py
* packages/cli-tools/src/structum/plugins/cli_tools/release.py
* packages/cli-tools/src/structum/plugins/cli_tools/security.py
* packages/cli-tools/src/structum/plugins/cli_tools/testing.py
* packages/cli-tools/tests/conftest.py
* packages/cli-tools/tests/test_cli_tools_dummy.py
* packages/database/README.md
* packages/database/pyproject.toml
* packages/database/src/structum/plugins/database/__init__.py
* packages/database/src/structum/plugins/database/base.py
* packages/database/src/structum/plugins/database/postgres.py
* packages/database/src/structum/plugins/database/sqlalchemy.py
* packages/database/tests/conftest.py
* packages/database/tests/test_database_dummy.py
* packages/di/README.md
* packages/di/pyproject.toml
* packages/di/src/structum/plugins/di/__init__.py
* packages/di/src/structum/plugins/di/container.py
* packages/di/src/structum/plugins/di/integrations/fastapi.py
* packages/di/tests/conftest.py
* packages/di/tests/test_di_dummy.py
* packages/dynaconf/README.md
* packages/dynaconf/pyproject.toml
* packages/dynaconf/src/structum/plugins/dynaconf/__init__.py
* packages/dynaconf/src/structum/plugins/dynaconf/builders.py
* packages/dynaconf/src/structum/plugins/dynaconf/director.py
* packages/dynaconf/src/structum/plugins/dynaconf/exceptions.py
* packages/dynaconf/src/structum/plugins/dynaconf/features/__init__.py
* packages/dynaconf/src/structum/plugins/dynaconf/features/cache.py
* packages/dynaconf/src/structum/plugins/dynaconf/features/health.py
* packages/dynaconf/src/structum/plugins/dynaconf/features/locks.py
* packages/dynaconf/src/structum/plugins/dynaconf/features/migrations.py
* packages/dynaconf/src/structum/plugins/dynaconf/features/transactions.py
* packages/dynaconf/src/structum/plugins/dynaconf/features/watcher.py
* packages/dynaconf/src/structum/plugins/dynaconf/manager.py
* packages/dynaconf/src/structum/plugins/dynaconf/provider.py
* packages/dynaconf/tests/conftest.py
* packages/dynaconf/tests/test_dynaconf_dummy.py
* packages/fastapi/README.md
* packages/fastapi/pyproject.toml
* packages/fastapi/src/structum/plugins/fastapi/__init__.py
* packages/fastapi/src/structum/plugins/fastapi/app.py
* packages/fastapi/src/structum/plugins/fastapi/dependencies.py
* packages/fastapi/src/structum/plugins/fastapi/middleware.py
* packages/fastapi/tests/__init__.py
* packages/fastapi/tests/test_app.py
* packages/fastapi/tests/test_fastapi_dummy.py
* packages/observability/README.md
* packages/observability/pyproject.toml
* packages/observability/src/structum/plugins/observability/__init__.py
* packages/observability/src/structum/plugins/observability/docs/prometheus.md
* packages/observability/src/structum/plugins/observability/docs/usage.md
* packages/observability/src/structum/plugins/observability/metrics.py
* packages/observability/src/structum/plugins/observability/observability.py
* packages/observability/src/structum/plugins/observability/prometheus.py
* packages/observability/tests/conftest.py
* packages/observability/tests/test_observability_dummy.py
* packages/structum/README.md
* packages/structum/pyproject.toml
* packages/structum/src/structum/auth/__init__.py
* packages/structum/src/structum/auth/interfaces.py
* packages/structum/src/structum/auth/manager.py
* packages/structum/src/structum/cli.py
* packages/structum/src/structum/config/__init__.py
* packages/structum/src/structum/config/adapters.py
* packages/structum/src/structum/config/interface.py
* packages/structum/src/structum/config/manager.py
* packages/structum/src/structum/database/__init__.py
* packages/structum/src/structum/database/exceptions.py
* packages/structum/src/structum/database/interfaces.py
* packages/structum/src/structum/database/manager.py
* packages/structum/src/structum/logging/__init__.py
* packages/structum/src/structum/logging/adapters.py
* packages/structum/src/structum/logging/interfaces.py
* packages/structum/src/structum/logging/manager.py
* packages/structum/src/structum/monitoring/__init__.py
* packages/structum/src/structum/monitoring/interfaces.py
* packages/structum/src/structum/monitoring/manager.py
* packages/structum/src/structum/utils/__init__.py
* packages/structum/src/structum/utils/imports.py
* packages/structum/src/structum/validation.py
* packages/structum/tests/__init__.py
* packages/structum/tests/conftest.py
* packages/structum/tests/test_structum_dummy.py
* pyproject.toml
* registry/plugins.json
* scripts/build-docs.sh

# MISSING COPYRIGHT AND LICENSING INFORMATION

The following files have no copyright and licensing information:
* .coveragerc
* .gitattributes
* packages/archive-html/src/structum/plugins/archive_html/__init__.py
* packages/archive-html/src/structum/plugins/archive_html/factory.py
* packages/archive-html/src/structum/plugins/archive_html/renderer.py
* packages/archive-json/src/structum/plugins/archive_json/__init__.py
* packages/archive-json/src/structum/plugins/archive_json/factory.py
* packages/archive-json/src/structum/plugins/archive_json/renderer.py
* packages/archive-markdown/src/structum/plugins/archive_markdown/__init__.py
* packages/archive-markdown/src/structum/plugins/archive_markdown/factory.py
* packages/archive-markdown/src/structum/plugins/archive_markdown/renderer.py
* packages/archive-markdown/src/structum/plugins/archive_markdown/tree.py
* packages/archive-zip/src/structum/plugins/archive_zip/__init__.py
* packages/archive-zip/src/structum/plugins/archive_zip/factory.py
* packages/archive-zip/src/structum/plugins/archive_zip/renderer.py
* packages/auth/src/structum/plugins/auth/__init__.py
* packages/structum/src/structum/archive/__init__.py
* packages/structum/src/structum/archive/exceptions.py
* packages/structum/src/structum/archive/interface.py
* packages/structum/src/structum/archive/manager.py
* packages/structum/src/structum/archive/models.py
* scripts/publish-pypi.sh
* uv.lock

The following files have no copyright information:
* packages/auth/src/structum/plugins/auth/base.py
* packages/auth/src/structum/plugins/auth/jwt.py
* packages/auth/src/structum/plugins/auth/oauth.py
* packages/auth/src/structum/plugins/auth/password.py
* packages/auth/src/structum/plugins/auth/rbac.py
* packages/database/src/structum/plugins/database/__init__.py
* packages/database/src/structum/plugins/database/base.py
* packages/database/src/structum/plugins/database/postgres.py
* packages/database/src/structum/plugins/database/sqlalchemy.py
* packages/structum/src/structum/auth/__init__.py
* packages/structum/src/structum/auth/interfaces.py
* packages/structum/src/structum/database/__init__.py
* packages/structum/src/structum/database/interfaces.py

The following files have no licensing information:
* NOTICE

# SUMMARY

* Bad licenses: 0
* Deprecated licenses: 0
* Licenses without file extension: 0
* Missing licenses: Apache-2.0
* Unused licenses: 0
* Used licenses: Apache-2.0
* Read errors: 0
* Invalid SPDX License Expressions: 0
* Files with copyright information: 244 / 280
* Files with license information: 256 / 280

Unfortunately, your project is not compliant with version 3.3 of the REUSE Specification :-(


# RECOMMENDATIONS

* Fix missing licenses: For at least one of the license identifiers provided by
  the 'SPDX-License-Identifier' tags, there is no corresponding license text
  file in the 'LICENSES' directory. For SPDX license identifiers, you can simply
  run 'reuse download --all' to get any missing ones. For custom licenses
  (starting with 'LicenseRef-'), you need to add these files yourself.
* Fix missing copyright/licensing information: For one or more files, the tool
  cannot find copyright and/or licensing information. You typically do this by
  adding 'SPDX-FileCopyrightText' and 'SPDX-License-Identifier' tags to each
  file. The tutorial explains additional ways to do this: