pd-code-delete-nugatory 0.1.1__tar.gz → 0.2.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.
@@ -0,0 +1,65 @@
1
+ Metadata-Version: 2.4
2
+ Name: pd-code-delete-nugatory
3
+ Version: 0.2.1
4
+ Summary: delete all nugatory crossing from a pd_code (link or knot).
5
+ License: MIT
6
+ License-File: LICENSE
7
+ Author: GGN_2015
8
+ Author-email: neko@jlulug.org
9
+ Requires-Python: >=3.10
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Python :: 3.14
17
+ Requires-Dist: pd-code-de-r1 (>=0.1.1)
18
+ Requires-Dist: pd-code-pre-nxt (>=0.1.0)
19
+ Description-Content-Type: text/markdown
20
+
21
+ # pd-code-delete-nugatory
22
+
23
+ Detect and remove nugatory crossings from PD codes.
24
+
25
+ ## Installation
26
+
27
+ ```bash
28
+ pip install pd-code-delete-nugatory
29
+ ```
30
+
31
+ ## Usage example
32
+
33
+ ```python
34
+ from pd_code_delete_nugatory import erase_all_nugatory, get_index_of_nugatory
35
+
36
+ pd = [[1, 1, 2, 2]]
37
+ print(get_index_of_nugatory(pd))
38
+ print(erase_all_nugatory(pd))
39
+ ```
40
+
41
+ ## Algorithm
42
+
43
+ For each candidate crossing, the algorithm removes that crossing from a weak strand graph and compares graph connectivity. A crossing whose removal separates regions is nugatory. Erasing it reconnects the paired arcs, removes any induced Reidemeister-I crossing, and renumbers the remaining component cycles. The process repeats until no candidate remains.
44
+
45
+ ## Input conventions
46
+
47
+ A PD code is represented as a list of four-entry crossings. Arc labels normally occur exactly twice. Public functions validate inputs and return new values rather than mutating caller-owned data unless their API explicitly says otherwise.
48
+
49
+ ## External software
50
+
51
+ No external software is required.
52
+
53
+ ## Development
54
+
55
+ Run examples and package checks before release. Python packages require Python 3.10 or newer. Build PyPI artifacts with:
56
+
57
+ ```bash
58
+ poetry check
59
+ poetry build
60
+ ```
61
+
62
+ ## License
63
+
64
+ MIT. See `LICENSE`.
65
+
@@ -0,0 +1,44 @@
1
+ # pd-code-delete-nugatory
2
+
3
+ Detect and remove nugatory crossings from PD codes.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pip install pd-code-delete-nugatory
9
+ ```
10
+
11
+ ## Usage example
12
+
13
+ ```python
14
+ from pd_code_delete_nugatory import erase_all_nugatory, get_index_of_nugatory
15
+
16
+ pd = [[1, 1, 2, 2]]
17
+ print(get_index_of_nugatory(pd))
18
+ print(erase_all_nugatory(pd))
19
+ ```
20
+
21
+ ## Algorithm
22
+
23
+ For each candidate crossing, the algorithm removes that crossing from a weak strand graph and compares graph connectivity. A crossing whose removal separates regions is nugatory. Erasing it reconnects the paired arcs, removes any induced Reidemeister-I crossing, and renumbers the remaining component cycles. The process repeats until no candidate remains.
24
+
25
+ ## Input conventions
26
+
27
+ A PD code is represented as a list of four-entry crossings. Arc labels normally occur exactly twice. Public functions validate inputs and return new values rather than mutating caller-owned data unless their API explicitly says otherwise.
28
+
29
+ ## External software
30
+
31
+ No external software is required.
32
+
33
+ ## Development
34
+
35
+ Run examples and package checks before release. Python packages require Python 3.10 or newer. Build PyPI artifacts with:
36
+
37
+ ```bash
38
+ poetry check
39
+ poetry build
40
+ ```
41
+
42
+ ## License
43
+
44
+ MIT. See `LICENSE`.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pd-code-delete-nugatory"
3
- version = "0.1.1"
3
+ version = "0.2.1"
4
4
  description = "delete all nugatory crossing from a pd_code (link or knot)."
5
5
  authors = [
6
6
  {name = "GGN_2015",email = "neko@jlulug.org"}
@@ -9,8 +9,8 @@ license = {text = "MIT"}
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
11
11
  dependencies = [
12
- "pd_code_de_r1",
13
- "pd_code_pre_nxt"
12
+ "pd-code-de-r1>=0.1.1",
13
+ "pd-code-pre-nxt>=0.1.0"
14
14
  ]
15
15
 
16
16
 
@@ -1,41 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: pd-code-delete-nugatory
3
- Version: 0.1.1
4
- Summary: delete all nugatory crossing from a pd_code (link or knot).
5
- License: MIT
6
- License-File: LICENSE
7
- Author: GGN_2015
8
- Author-email: neko@jlulug.org
9
- Requires-Python: >=3.10
10
- Classifier: License :: OSI Approved :: MIT License
11
- Classifier: Programming Language :: Python :: 3
12
- Classifier: Programming Language :: Python :: 3.10
13
- Classifier: Programming Language :: Python :: 3.11
14
- Classifier: Programming Language :: Python :: 3.12
15
- Classifier: Programming Language :: Python :: 3.13
16
- Classifier: Programming Language :: Python :: 3.14
17
- Requires-Dist: pd_code_de_r1
18
- Requires-Dist: pd_code_pre_nxt
19
- Description-Content-Type: text/markdown
20
-
21
- # pd_code_delete_nugatory
22
- delete all nugatory crossing from a pd_code (link or knot).
23
-
24
- ## Install
25
-
26
- ```bash
27
- pip install pd-code-delete-nugatory
28
- ```
29
-
30
- ## Usage
31
-
32
- ```python
33
- import pd_code_delete_nugatory
34
-
35
-
36
- pd_code = [[8, 11, 9, 12], [12, 9, 13, 10], [10, 13, 11, 14], [7, 14, 8, 1], [4, 1, 5, 2], [2, 5, 3, 6], [6, 3, 7, 4]]
37
-
38
- # output a 6-crossing knot
39
- print(pd_code_delete_nugatory.erase_all_nugatory(pd_code))
40
- ```
41
-
@@ -1,20 +0,0 @@
1
- # pd_code_delete_nugatory
2
- delete all nugatory crossing from a pd_code (link or knot).
3
-
4
- ## Install
5
-
6
- ```bash
7
- pip install pd-code-delete-nugatory
8
- ```
9
-
10
- ## Usage
11
-
12
- ```python
13
- import pd_code_delete_nugatory
14
-
15
-
16
- pd_code = [[8, 11, 9, 12], [12, 9, 13, 10], [10, 13, 11, 14], [7, 14, 8, 1], [4, 1, 5, 2], [2, 5, 3, 6], [6, 3, 7, 4]]
17
-
18
- # output a 6-crossing knot
19
- print(pd_code_delete_nugatory.erase_all_nugatory(pd_code))
20
- ```