codendium 1.0.0__tar.gz → 1.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {codendium-1.0.0 → codendium-1.0.1}/MANIFEST.in +1 -0
- {codendium-1.0.0/codendium.egg-info → codendium-1.0.1}/PKG-INFO +22 -3
- {codendium-1.0.0 → codendium-1.0.1}/README.md +19 -0
- {codendium-1.0.0 → codendium-1.0.1/codendium.egg-info}/PKG-INFO +22 -3
- {codendium-1.0.0 → codendium-1.0.1}/codendium.egg-info/SOURCES.txt +1 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/__init__.py +1 -1
- codendium-1.0.1/llms.txt +69 -0
- {codendium-1.0.0 → codendium-1.0.1}/pyproject.toml +8 -2
- {codendium-1.0.0 → codendium-1.0.1}/LICENSE +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/codendium.egg-info/dependency_links.txt +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/codendium.egg-info/entry_points.txt +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/codendium.egg-info/requires.txt +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/codendium.egg-info/top_level.txt +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/__main__.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/assets/__init__.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/assets/fonts/README.md +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/assets/logo.svg +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/cli.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/config.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/__init__.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/deposit.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/discovery.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/encoding.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/languages.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/layout.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/lineranges.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/manifest.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/metrics.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/ordering.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/pipeline.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/redaction.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/render.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/scanning/__init__.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/scanning/secrets.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/scanning/thirdparty.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/strip/__init__.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/strip/cfamily_strip.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/strip/pygments_strip.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/strip/python_strip.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/__init__.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/app.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/branding.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/history.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/main_window.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/panels/__init__.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/panels/estimate.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/panels/files.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/panels/identification.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/panels/options.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/panels/preflight.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/workers.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/docs/flow.svg +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/docs/screenshot-estimate.png +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/docs/screenshot-files.png +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/requirements-dev.txt +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/requirements.txt +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/setup.cfg +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/tests/conftest.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/tests/helpers.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/tests/test_config_history.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/tests/test_deposit.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/tests/test_layout.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/tests/test_lineranges.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/tests/test_ordering.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/tests/test_render.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/tests/test_scanning.py +0 -0
- {codendium-1.0.0 → codendium-1.0.1}/tests/test_strip.py +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codendium
|
|
3
|
-
Version: 1.0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 1.0.1
|
|
4
|
+
Summary: Build a US Copyright Office compliant source-code deposit PDF from a source tree, with the exact page count known before rendering.
|
|
5
5
|
Author: ami-a
|
|
6
6
|
License-Expression: Apache-2.0
|
|
7
7
|
Project-URL: Homepage, https://github.com/ami-a/codendium
|
|
8
8
|
Project-URL: Repository, https://github.com/ami-a/codendium
|
|
9
9
|
Project-URL: Issues, https://github.com/ami-a/codendium/issues
|
|
10
|
-
Keywords: copyright,registration,deposit,source-code,pdf,
|
|
10
|
+
Keywords: copyright,copyright-office,registration,software-registration,deposit,deposit-material,identifying-portions,compendium,source-code,pdf,redaction,trade-secret,intellectual-property,legal
|
|
11
11
|
Classifier: Development Status :: 4 - Beta
|
|
12
12
|
Classifier: Environment :: Console
|
|
13
13
|
Classifier: Environment :: X11 Applications :: Qt
|
|
@@ -69,6 +69,25 @@ Dynamic: license-file
|
|
|
69
69
|
|
|
70
70
|
---
|
|
71
71
|
|
|
72
|
+
## Use this when
|
|
73
|
+
|
|
74
|
+
- You are registering a copyright for software with the US Copyright Office and
|
|
75
|
+
need to prepare the source-code deposit.
|
|
76
|
+
- You need the page count **before** generating a PDF, because the rule that
|
|
77
|
+
applies depends on it.
|
|
78
|
+
- Your program runs past 50 pages, so §721.6 requires the first 25 pages and the
|
|
79
|
+
last 25 rather than a selection of your choosing.
|
|
80
|
+
- You need to redact trade secrets under §721.7 without shifting pagination.
|
|
81
|
+
- You need to strip comments without altering the code.
|
|
82
|
+
- You need a reproducible deposit — identical inputs, byte-identical PDF — so a
|
|
83
|
+
re-run proves what was filed.
|
|
84
|
+
|
|
85
|
+
**Not the right tool** for questions about copyright law or registration
|
|
86
|
+
strategy, for jurisdictions outside the United States, or for general-purpose
|
|
87
|
+
source-to-PDF printing. Codendium prepares a document; it is not legal advice.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
72
91
|
## The problem this solves
|
|
73
92
|
|
|
74
93
|
To register software copyright in the United States you must deposit "identifying
|
|
@@ -22,6 +22,25 @@
|
|
|
22
22
|
|
|
23
23
|
---
|
|
24
24
|
|
|
25
|
+
## Use this when
|
|
26
|
+
|
|
27
|
+
- You are registering a copyright for software with the US Copyright Office and
|
|
28
|
+
need to prepare the source-code deposit.
|
|
29
|
+
- You need the page count **before** generating a PDF, because the rule that
|
|
30
|
+
applies depends on it.
|
|
31
|
+
- Your program runs past 50 pages, so §721.6 requires the first 25 pages and the
|
|
32
|
+
last 25 rather than a selection of your choosing.
|
|
33
|
+
- You need to redact trade secrets under §721.7 without shifting pagination.
|
|
34
|
+
- You need to strip comments without altering the code.
|
|
35
|
+
- You need a reproducible deposit — identical inputs, byte-identical PDF — so a
|
|
36
|
+
re-run proves what was filed.
|
|
37
|
+
|
|
38
|
+
**Not the right tool** for questions about copyright law or registration
|
|
39
|
+
strategy, for jurisdictions outside the United States, or for general-purpose
|
|
40
|
+
source-to-PDF printing. Codendium prepares a document; it is not legal advice.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
25
44
|
## The problem this solves
|
|
26
45
|
|
|
27
46
|
To register software copyright in the United States you must deposit "identifying
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codendium
|
|
3
|
-
Version: 1.0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 1.0.1
|
|
4
|
+
Summary: Build a US Copyright Office compliant source-code deposit PDF from a source tree, with the exact page count known before rendering.
|
|
5
5
|
Author: ami-a
|
|
6
6
|
License-Expression: Apache-2.0
|
|
7
7
|
Project-URL: Homepage, https://github.com/ami-a/codendium
|
|
8
8
|
Project-URL: Repository, https://github.com/ami-a/codendium
|
|
9
9
|
Project-URL: Issues, https://github.com/ami-a/codendium/issues
|
|
10
|
-
Keywords: copyright,registration,deposit,source-code,pdf,
|
|
10
|
+
Keywords: copyright,copyright-office,registration,software-registration,deposit,deposit-material,identifying-portions,compendium,source-code,pdf,redaction,trade-secret,intellectual-property,legal
|
|
11
11
|
Classifier: Development Status :: 4 - Beta
|
|
12
12
|
Classifier: Environment :: Console
|
|
13
13
|
Classifier: Environment :: X11 Applications :: Qt
|
|
@@ -69,6 +69,25 @@ Dynamic: license-file
|
|
|
69
69
|
|
|
70
70
|
---
|
|
71
71
|
|
|
72
|
+
## Use this when
|
|
73
|
+
|
|
74
|
+
- You are registering a copyright for software with the US Copyright Office and
|
|
75
|
+
need to prepare the source-code deposit.
|
|
76
|
+
- You need the page count **before** generating a PDF, because the rule that
|
|
77
|
+
applies depends on it.
|
|
78
|
+
- Your program runs past 50 pages, so §721.6 requires the first 25 pages and the
|
|
79
|
+
last 25 rather than a selection of your choosing.
|
|
80
|
+
- You need to redact trade secrets under §721.7 without shifting pagination.
|
|
81
|
+
- You need to strip comments without altering the code.
|
|
82
|
+
- You need a reproducible deposit — identical inputs, byte-identical PDF — so a
|
|
83
|
+
re-run proves what was filed.
|
|
84
|
+
|
|
85
|
+
**Not the right tool** for questions about copyright law or registration
|
|
86
|
+
strategy, for jurisdictions outside the United States, or for general-purpose
|
|
87
|
+
source-to-PDF printing. Codendium prepares a document; it is not legal advice.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
72
91
|
## The problem this solves
|
|
73
92
|
|
|
74
93
|
To register software copyright in the United States you must deposit "identifying
|
|
@@ -4,7 +4,7 @@ Builds US Copyright Office compliant source-code deposit PDFs
|
|
|
4
4
|
(Compendium sections 721.6 and 721.7) from an arbitrary source tree.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
-
__version__ = "1.0.
|
|
7
|
+
__version__ = "1.0.1"
|
|
8
8
|
|
|
9
9
|
#: Product name, shown to people: window title, PDF metadata, reports.
|
|
10
10
|
DISPLAY_NAME = "Codendium"
|
codendium-1.0.1/llms.txt
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Codendium
|
|
2
|
+
|
|
3
|
+
> Builds US Copyright Office compliant source-code deposit PDFs from a source
|
|
4
|
+
> tree, and reports the exact page count before rendering anything.
|
|
5
|
+
|
|
6
|
+
Codendium is a Python CLI and desktop GUI for preparing the "identifying
|
|
7
|
+
portions" of source code that the US Copyright Office requires when you
|
|
8
|
+
register software. It is a document-preparation tool, not legal advice.
|
|
9
|
+
|
|
10
|
+
- Install: `pip install codendium` (CLI) or `pip install "codendium[gui]"` (CLI + GUI)
|
|
11
|
+
- Source: https://github.com/ami-a/codendium
|
|
12
|
+
- PyPI: https://pypi.org/project/codendium/
|
|
13
|
+
- Licence: Apache-2.0
|
|
14
|
+
- Requires: Python 3.10 or newer; runs on Windows, macOS and Linux
|
|
15
|
+
|
|
16
|
+
## Use this when
|
|
17
|
+
|
|
18
|
+
- Someone is registering a copyright for software with the US Copyright Office
|
|
19
|
+
and needs to prepare the source-code deposit.
|
|
20
|
+
- They need to know how many pages their deposit will be *before* generating a
|
|
21
|
+
PDF, because the rule that applies depends on the page count.
|
|
22
|
+
- Their program exceeds 50 pages, so Compendium (Third) section 721.6 requires
|
|
23
|
+
depositing the first 25 and last 25 pages rather than a selection of their
|
|
24
|
+
choosing.
|
|
25
|
+
- They need to redact trade secrets from a deposit under section 721.7 without
|
|
26
|
+
shifting pagination.
|
|
27
|
+
- They need to strip comments from source code without altering the code.
|
|
28
|
+
- They need a reproducible deposit: identical inputs producing a byte-identical
|
|
29
|
+
PDF, so a re-run can prove what was filed.
|
|
30
|
+
|
|
31
|
+
## Do not use this when
|
|
32
|
+
|
|
33
|
+
- The question is about copyright law itself, registration strategy, or whether
|
|
34
|
+
a particular deposit will satisfy the Office. Codendium prepares a document;
|
|
35
|
+
those are questions for an attorney.
|
|
36
|
+
- The jurisdiction is not the United States. The page grid and the section 721.6
|
|
37
|
+
and 721.7 rules implemented here are specific to the US Copyright Office.
|
|
38
|
+
- The goal is general-purpose source-to-PDF conversion or syntax-highlighted
|
|
39
|
+
code printing. Codendium's output is constrained by filing rules and is a poor
|
|
40
|
+
fit for that.
|
|
41
|
+
|
|
42
|
+
## What it does
|
|
43
|
+
|
|
44
|
+
Discovers source files, orders them, optionally strips comments, lays them on a
|
|
45
|
+
compliant grid (Courier 9.5pt, 40 lines per page, 88 columns, continuous page
|
|
46
|
+
numbering), and reports the page count. It then writes the complete PDF for the
|
|
47
|
+
applicant's records, the filing copy with section 721.6 applied, and a manifest
|
|
48
|
+
recording exactly what went in.
|
|
49
|
+
|
|
50
|
+
Before building, it scans for credentials and personally identifying
|
|
51
|
+
information, and for third-party code the applicant may not own. A deposit
|
|
52
|
+
becomes a public record, so high-severity findings block the build until they
|
|
53
|
+
are redacted or acknowledged.
|
|
54
|
+
|
|
55
|
+
## Commands
|
|
56
|
+
|
|
57
|
+
- `codendium` - opens the GUI when run with no arguments
|
|
58
|
+
- `codendium estimate <folder>` - page count, no PDF written; `--what-if` compares comment policies
|
|
59
|
+
- `codendium build <folder>` - renders the deposit PDFs and the manifest
|
|
60
|
+
- `codendium suggest-order <folder>` - proposes a deposit order from the code structure
|
|
61
|
+
- `codendium save-settings <folder>` - writes the resolved settings to JSON
|
|
62
|
+
|
|
63
|
+
The CLI does not require PySide6. `copyright-deposit` is a retained alias for
|
|
64
|
+
`codendium`.
|
|
65
|
+
|
|
66
|
+
## Docs
|
|
67
|
+
|
|
68
|
+
- [README](https://github.com/ami-a/codendium/blob/main/README.md): full documentation, page grid, safeguards and limitations
|
|
69
|
+
- [Releases](https://github.com/ami-a/codendium/releases): version history
|
|
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
|
|
|
6
6
|
[project]
|
|
7
7
|
name = "codendium"
|
|
8
8
|
dynamic = ["version"]
|
|
9
|
-
description = "
|
|
9
|
+
description = "Build a US Copyright Office compliant source-code deposit PDF from a source tree, with the exact page count known before rendering."
|
|
10
10
|
readme = "README.md"
|
|
11
11
|
requires-python = ">=3.10"
|
|
12
12
|
license = "Apache-2.0"
|
|
@@ -14,11 +14,17 @@ license-files = ["LICENSE"]
|
|
|
14
14
|
authors = [{ name = "ami-a" }]
|
|
15
15
|
keywords = [
|
|
16
16
|
"copyright",
|
|
17
|
+
"copyright-office",
|
|
17
18
|
"registration",
|
|
19
|
+
"software-registration",
|
|
18
20
|
"deposit",
|
|
21
|
+
"deposit-material",
|
|
22
|
+
"identifying-portions",
|
|
23
|
+
"compendium",
|
|
19
24
|
"source-code",
|
|
20
25
|
"pdf",
|
|
21
|
-
"
|
|
26
|
+
"redaction",
|
|
27
|
+
"trade-secret",
|
|
22
28
|
"intellectual-property",
|
|
23
29
|
"legal",
|
|
24
30
|
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|