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.
Files changed (67) hide show
  1. {codendium-1.0.0 → codendium-1.0.1}/MANIFEST.in +1 -0
  2. {codendium-1.0.0/codendium.egg-info → codendium-1.0.1}/PKG-INFO +22 -3
  3. {codendium-1.0.0 → codendium-1.0.1}/README.md +19 -0
  4. {codendium-1.0.0 → codendium-1.0.1/codendium.egg-info}/PKG-INFO +22 -3
  5. {codendium-1.0.0 → codendium-1.0.1}/codendium.egg-info/SOURCES.txt +1 -0
  6. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/__init__.py +1 -1
  7. codendium-1.0.1/llms.txt +69 -0
  8. {codendium-1.0.0 → codendium-1.0.1}/pyproject.toml +8 -2
  9. {codendium-1.0.0 → codendium-1.0.1}/LICENSE +0 -0
  10. {codendium-1.0.0 → codendium-1.0.1}/codendium.egg-info/dependency_links.txt +0 -0
  11. {codendium-1.0.0 → codendium-1.0.1}/codendium.egg-info/entry_points.txt +0 -0
  12. {codendium-1.0.0 → codendium-1.0.1}/codendium.egg-info/requires.txt +0 -0
  13. {codendium-1.0.0 → codendium-1.0.1}/codendium.egg-info/top_level.txt +0 -0
  14. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/__main__.py +0 -0
  15. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/assets/__init__.py +0 -0
  16. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/assets/fonts/README.md +0 -0
  17. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/assets/logo.svg +0 -0
  18. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/cli.py +0 -0
  19. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/config.py +0 -0
  20. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/__init__.py +0 -0
  21. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/deposit.py +0 -0
  22. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/discovery.py +0 -0
  23. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/encoding.py +0 -0
  24. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/languages.py +0 -0
  25. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/layout.py +0 -0
  26. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/lineranges.py +0 -0
  27. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/manifest.py +0 -0
  28. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/metrics.py +0 -0
  29. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/ordering.py +0 -0
  30. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/pipeline.py +0 -0
  31. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/redaction.py +0 -0
  32. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/render.py +0 -0
  33. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/scanning/__init__.py +0 -0
  34. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/scanning/secrets.py +0 -0
  35. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/scanning/thirdparty.py +0 -0
  36. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/strip/__init__.py +0 -0
  37. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/strip/cfamily_strip.py +0 -0
  38. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/strip/pygments_strip.py +0 -0
  39. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/core/strip/python_strip.py +0 -0
  40. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/__init__.py +0 -0
  41. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/app.py +0 -0
  42. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/branding.py +0 -0
  43. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/history.py +0 -0
  44. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/main_window.py +0 -0
  45. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/panels/__init__.py +0 -0
  46. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/panels/estimate.py +0 -0
  47. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/panels/files.py +0 -0
  48. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/panels/identification.py +0 -0
  49. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/panels/options.py +0 -0
  50. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/panels/preflight.py +0 -0
  51. {codendium-1.0.0 → codendium-1.0.1}/copyright_deposit/gui/workers.py +0 -0
  52. {codendium-1.0.0 → codendium-1.0.1}/docs/flow.svg +0 -0
  53. {codendium-1.0.0 → codendium-1.0.1}/docs/screenshot-estimate.png +0 -0
  54. {codendium-1.0.0 → codendium-1.0.1}/docs/screenshot-files.png +0 -0
  55. {codendium-1.0.0 → codendium-1.0.1}/requirements-dev.txt +0 -0
  56. {codendium-1.0.0 → codendium-1.0.1}/requirements.txt +0 -0
  57. {codendium-1.0.0 → codendium-1.0.1}/setup.cfg +0 -0
  58. {codendium-1.0.0 → codendium-1.0.1}/tests/conftest.py +0 -0
  59. {codendium-1.0.0 → codendium-1.0.1}/tests/helpers.py +0 -0
  60. {codendium-1.0.0 → codendium-1.0.1}/tests/test_config_history.py +0 -0
  61. {codendium-1.0.0 → codendium-1.0.1}/tests/test_deposit.py +0 -0
  62. {codendium-1.0.0 → codendium-1.0.1}/tests/test_layout.py +0 -0
  63. {codendium-1.0.0 → codendium-1.0.1}/tests/test_lineranges.py +0 -0
  64. {codendium-1.0.0 → codendium-1.0.1}/tests/test_ordering.py +0 -0
  65. {codendium-1.0.0 → codendium-1.0.1}/tests/test_render.py +0 -0
  66. {codendium-1.0.0 → codendium-1.0.1}/tests/test_scanning.py +0 -0
  67. {codendium-1.0.0 → codendium-1.0.1}/tests/test_strip.py +0 -0
@@ -1,5 +1,6 @@
1
1
  include LICENSE
2
2
  include README.md
3
+ include llms.txt
3
4
  include requirements.txt
4
5
  include requirements-dev.txt
5
6
  recursive-include copyright_deposit/assets *
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codendium
3
- Version: 1.0.0
4
- Summary: Codendium - builds US Copyright Office compliant source-code deposit PDFs from a source tree.
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,compendium,intellectual-property,legal
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.0
4
- Summary: Codendium - builds US Copyright Office compliant source-code deposit PDFs from a source tree.
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,compendium,intellectual-property,legal
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
@@ -1,6 +1,7 @@
1
1
  LICENSE
2
2
  MANIFEST.in
3
3
  README.md
4
+ llms.txt
4
5
  pyproject.toml
5
6
  requirements-dev.txt
6
7
  requirements.txt
@@ -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.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"
@@ -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 = "Codendium - builds US Copyright Office compliant source-code deposit PDFs from a source tree."
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
- "compendium",
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