uritools 4.0.2__tar.gz → 5.0.0__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 (27) hide show
  1. {uritools-4.0.2 → uritools-5.0.0}/CHANGELOG.rst +14 -0
  2. {uritools-4.0.2 → uritools-5.0.0}/LICENSE +1 -1
  3. {uritools-4.0.2 → uritools-5.0.0}/MANIFEST.in +1 -0
  4. {uritools-4.0.2/src/uritools.egg-info → uritools-5.0.0}/PKG-INFO +19 -6
  5. {uritools-4.0.2 → uritools-5.0.0}/README.rst +14 -1
  6. uritools-5.0.0/docs/conf.py +35 -0
  7. {uritools-4.0.2 → uritools-5.0.0}/setup.cfg +3 -4
  8. {uritools-4.0.2 → uritools-5.0.0}/src/uritools/__init__.py +1 -1
  9. {uritools-4.0.2 → uritools-5.0.0/src/uritools.egg-info}/PKG-INFO +19 -6
  10. {uritools-4.0.2 → uritools-5.0.0}/src/uritools.egg-info/SOURCES.txt +0 -1
  11. {uritools-4.0.2 → uritools-5.0.0}/tests/test_split.py +106 -25
  12. {uritools-4.0.2 → uritools-5.0.0}/tox.ini +3 -5
  13. uritools-4.0.2/docs/Makefile +0 -153
  14. uritools-4.0.2/docs/conf.py +0 -14
  15. {uritools-4.0.2 → uritools-5.0.0}/docs/.gitignore +0 -0
  16. {uritools-4.0.2 → uritools-5.0.0}/docs/index.rst +0 -0
  17. {uritools-4.0.2 → uritools-5.0.0}/pyproject.toml +0 -0
  18. {uritools-4.0.2 → uritools-5.0.0}/setup.py +0 -0
  19. {uritools-4.0.2 → uritools-5.0.0}/src/uritools.egg-info/dependency_links.txt +0 -0
  20. {uritools-4.0.2 → uritools-5.0.0}/src/uritools.egg-info/top_level.txt +0 -0
  21. {uritools-4.0.2 → uritools-5.0.0}/tests/__init__.py +0 -0
  22. {uritools-4.0.2 → uritools-5.0.0}/tests/test_classify.py +0 -0
  23. {uritools-4.0.2 → uritools-5.0.0}/tests/test_compose.py +0 -0
  24. {uritools-4.0.2 → uritools-5.0.0}/tests/test_defrag.py +0 -0
  25. {uritools-4.0.2 → uritools-5.0.0}/tests/test_encoding.py +0 -0
  26. {uritools-4.0.2 → uritools-5.0.0}/tests/test_join.py +0 -0
  27. {uritools-4.0.2 → uritools-5.0.0}/tests/test_unsplit.py +0 -0
@@ -1,3 +1,17 @@
1
+ v5.0.0 (2025-05-02)
2
+ ===================
3
+
4
+ - Require Python 3.9 or later (breaking change).
5
+
6
+ - Update CI environment.
7
+
8
+
9
+ v4.0.3 (2024-05-28)
10
+ ===================
11
+
12
+ - Prepare for Python 3.13.
13
+
14
+
1
15
  v4.0.2 (2023-08-30)
2
16
  ===================
3
17
 
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2014-2022 Thomas Kemmer
3
+ Copyright (c) 2014-2025 Thomas Kemmer
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  this software and associated documentation files (the "Software"), to deal in
@@ -3,6 +3,7 @@ include LICENSE
3
3
  include MANIFEST.in
4
4
  include README.rst
5
5
  include tox.ini
6
+ exclude .readthedocs.yaml
6
7
 
7
8
  recursive-include docs *
8
9
  prune docs/_build
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: uritools
3
- Version: 4.0.2
3
+ Version: 5.0.0
4
4
  Summary: URI parsing, classification and composition
5
5
  Home-page: https://github.com/tkem/uritools/
6
6
  Author: Thomas Kemmer
@@ -13,15 +13,15 @@ Classifier: License :: OSI Approved :: MIT License
13
13
  Classifier: Operating System :: OS Independent
14
14
  Classifier: Programming Language :: Python
15
15
  Classifier: Programming Language :: Python :: 3
16
- Classifier: Programming Language :: Python :: 3.7
17
- Classifier: Programming Language :: Python :: 3.8
18
16
  Classifier: Programming Language :: Python :: 3.9
19
17
  Classifier: Programming Language :: Python :: 3.10
20
18
  Classifier: Programming Language :: Python :: 3.11
21
19
  Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
22
21
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
- Requires-Python: >=3.7
22
+ Requires-Python: >=3.9
24
23
  License-File: LICENSE
24
+ Dynamic: license-file
25
25
 
26
26
  uritools
27
27
  ========================================================================
@@ -54,6 +54,7 @@ uritools
54
54
  :target: https://github.com/psf/black
55
55
  :alt: Code style: black
56
56
 
57
+
57
58
  This module provides RFC 3986 compliant functions for parsing,
58
59
  classifying and composing URIs and URI references, largely replacing
59
60
  the Python Standard Library's ``urllib.parse`` module.
@@ -116,10 +117,19 @@ Project Resources
116
117
  - `Change log`_
117
118
 
118
119
 
120
+ Related Projects
121
+ ------------------------------------------------------------------------
122
+
123
+ - rfc3986_: A Python implementation of RFC 3986 including validation
124
+ and authority parsing.
125
+ - rfc3987_: Parsing and validation of URIs (RFC 3896) and IRIs (RFC
126
+ 3987).
127
+
128
+
119
129
  License
120
130
  ------------------------------------------------------------------------
121
131
 
122
- Copyright (c) 2014-2023 Thomas Kemmer.
132
+ Copyright (c) 2014-2025 Thomas Kemmer.
123
133
 
124
134
  Licensed under the `MIT License`_.
125
135
 
@@ -130,3 +140,6 @@ Licensed under the `MIT License`_.
130
140
  .. _Source code: https://github.com/tkem/uritools/
131
141
  .. _Change log: https://github.com/tkem/uritools/blob/master/CHANGELOG.rst
132
142
  .. _MIT License: https://raw.github.com/tkem/uritools/master/LICENSE
143
+
144
+ .. _rfc3986: https://pypi.org/project/rfc3986/
145
+ .. _rfc3987: https://pypi.org/project/rfc3987/
@@ -29,6 +29,7 @@ uritools
29
29
  :target: https://github.com/psf/black
30
30
  :alt: Code style: black
31
31
 
32
+
32
33
  This module provides RFC 3986 compliant functions for parsing,
33
34
  classifying and composing URIs and URI references, largely replacing
34
35
  the Python Standard Library's ``urllib.parse`` module.
@@ -91,10 +92,19 @@ Project Resources
91
92
  - `Change log`_
92
93
 
93
94
 
95
+ Related Projects
96
+ ------------------------------------------------------------------------
97
+
98
+ - rfc3986_: A Python implementation of RFC 3986 including validation
99
+ and authority parsing.
100
+ - rfc3987_: Parsing and validation of URIs (RFC 3896) and IRIs (RFC
101
+ 3987).
102
+
103
+
94
104
  License
95
105
  ------------------------------------------------------------------------
96
106
 
97
- Copyright (c) 2014-2023 Thomas Kemmer.
107
+ Copyright (c) 2014-2025 Thomas Kemmer.
98
108
 
99
109
  Licensed under the `MIT License`_.
100
110
 
@@ -105,3 +115,6 @@ Licensed under the `MIT License`_.
105
115
  .. _Source code: https://github.com/tkem/uritools/
106
116
  .. _Change log: https://github.com/tkem/uritools/blob/master/CHANGELOG.rst
107
117
  .. _MIT License: https://raw.github.com/tkem/uritools/master/LICENSE
118
+
119
+ .. _rfc3986: https://pypi.org/project/rfc3986/
120
+ .. _rfc3987: https://pypi.org/project/rfc3987/
@@ -0,0 +1,35 @@
1
+ import pathlib
2
+ import sys
3
+
4
+ src_directory = (pathlib.Path(__file__).parent.parent / "src").resolve()
5
+ sys.path.insert(0, str(src_directory))
6
+
7
+
8
+ # Extract the current version from the source.
9
+ def get_version():
10
+ """Get the version and release from the source code."""
11
+
12
+ text = (src_directory / "uritools/__init__.py").read_text()
13
+ for line in text.splitlines():
14
+ if not line.strip().startswith("__version__"):
15
+ continue
16
+ full_version = line.partition("=")[2].strip().strip("\"'")
17
+ partial_version = ".".join(full_version.split(".")[:2])
18
+ return full_version, partial_version
19
+
20
+
21
+ project = "uritools"
22
+ copyright = "2014-2025 Thomas Kemmer"
23
+ release, version = get_version()
24
+
25
+ extensions = [
26
+ "sphinx.ext.autodoc",
27
+ "sphinx.ext.coverage",
28
+ "sphinx.ext.doctest",
29
+ "sphinx.ext.intersphinx",
30
+ "sphinx.ext.todo",
31
+ ]
32
+ exclude_patterns = ["_build"]
33
+ master_doc = "index"
34
+ html_theme = "classic"
35
+ intersphinx_mapping = {"python": ("https://docs.python.org/3", None)}
@@ -5,7 +5,7 @@ url = https://github.com/tkem/uritools/
5
5
  author = Thomas Kemmer
6
6
  author_email = tkemmer@computer.org
7
7
  license = MIT
8
- license_file = LICENSE
8
+ license_files = LICENSE
9
9
  description = URI parsing, classification and composition
10
10
  long_description = file: README.rst
11
11
  classifiers =
@@ -16,19 +16,18 @@ classifiers =
16
16
  Operating System :: OS Independent
17
17
  Programming Language :: Python
18
18
  Programming Language :: Python :: 3
19
- Programming Language :: Python :: 3.7
20
- Programming Language :: Python :: 3.8
21
19
  Programming Language :: Python :: 3.9
22
20
  Programming Language :: Python :: 3.10
23
21
  Programming Language :: Python :: 3.11
24
22
  Programming Language :: Python :: 3.12
23
+ Programming Language :: Python :: 3.13
25
24
  Topic :: Software Development :: Libraries :: Python Modules
26
25
 
27
26
  [options]
28
27
  package_dir =
29
28
  = src
30
29
  packages = find:
31
- python_requires = >= 3.7
30
+ python_requires = >= 3.9
32
31
 
33
32
  [options.packages.find]
34
33
  where = src
@@ -34,7 +34,7 @@ __all__ = (
34
34
  "uriunsplit",
35
35
  )
36
36
 
37
- __version__ = "4.0.2"
37
+ __version__ = "5.0.0"
38
38
 
39
39
 
40
40
  # RFC 3986 2.2. Reserved Characters
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: uritools
3
- Version: 4.0.2
3
+ Version: 5.0.0
4
4
  Summary: URI parsing, classification and composition
5
5
  Home-page: https://github.com/tkem/uritools/
6
6
  Author: Thomas Kemmer
@@ -13,15 +13,15 @@ Classifier: License :: OSI Approved :: MIT License
13
13
  Classifier: Operating System :: OS Independent
14
14
  Classifier: Programming Language :: Python
15
15
  Classifier: Programming Language :: Python :: 3
16
- Classifier: Programming Language :: Python :: 3.7
17
- Classifier: Programming Language :: Python :: 3.8
18
16
  Classifier: Programming Language :: Python :: 3.9
19
17
  Classifier: Programming Language :: Python :: 3.10
20
18
  Classifier: Programming Language :: Python :: 3.11
21
19
  Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
22
21
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
- Requires-Python: >=3.7
22
+ Requires-Python: >=3.9
24
23
  License-File: LICENSE
24
+ Dynamic: license-file
25
25
 
26
26
  uritools
27
27
  ========================================================================
@@ -54,6 +54,7 @@ uritools
54
54
  :target: https://github.com/psf/black
55
55
  :alt: Code style: black
56
56
 
57
+
57
58
  This module provides RFC 3986 compliant functions for parsing,
58
59
  classifying and composing URIs and URI references, largely replacing
59
60
  the Python Standard Library's ``urllib.parse`` module.
@@ -116,10 +117,19 @@ Project Resources
116
117
  - `Change log`_
117
118
 
118
119
 
120
+ Related Projects
121
+ ------------------------------------------------------------------------
122
+
123
+ - rfc3986_: A Python implementation of RFC 3986 including validation
124
+ and authority parsing.
125
+ - rfc3987_: Parsing and validation of URIs (RFC 3896) and IRIs (RFC
126
+ 3987).
127
+
128
+
119
129
  License
120
130
  ------------------------------------------------------------------------
121
131
 
122
- Copyright (c) 2014-2023 Thomas Kemmer.
132
+ Copyright (c) 2014-2025 Thomas Kemmer.
123
133
 
124
134
  Licensed under the `MIT License`_.
125
135
 
@@ -130,3 +140,6 @@ Licensed under the `MIT License`_.
130
140
  .. _Source code: https://github.com/tkem/uritools/
131
141
  .. _Change log: https://github.com/tkem/uritools/blob/master/CHANGELOG.rst
132
142
  .. _MIT License: https://raw.github.com/tkem/uritools/master/LICENSE
143
+
144
+ .. _rfc3986: https://pypi.org/project/rfc3986/
145
+ .. _rfc3987: https://pypi.org/project/rfc3987/
@@ -7,7 +7,6 @@ setup.cfg
7
7
  setup.py
8
8
  tox.ini
9
9
  docs/.gitignore
10
- docs/Makefile
11
10
  docs/conf.py
12
11
  docs/index.rst
13
12
  src/uritools/__init__.py
@@ -406,52 +406,133 @@ class SplitTest(unittest.TestCase):
406
406
  "Error parsing query list for %r" % query,
407
407
  )
408
408
 
409
- def test_ip_literal(self):
409
+ def test_ipv4_literal(self):
410
410
  cases = [
411
- ("http://Test.python.org:5432/foo/", "test.python.org", 5432),
411
+ ("http://12.34.56.78/foo/", "12.34.56.78", None),
412
+ ("http://12.34.56.78:/foo/", "12.34.56.78", None),
412
413
  ("http://12.34.56.78:5432/foo/", "12.34.56.78", 5432),
413
- ("http://[::1]:5432/foo/", "::1", 5432),
414
- ("http://[dead:beef::1]:5432/foo/", "dead:beef::1", 5432),
415
- ("http://[dead:beef::]:5432/foo/", "dead:beef::", 5432),
414
+ ]
415
+ for uri, host, port in cases:
416
+ for parts in (urisplit(uri), urisplit(uri.encode("ascii"))):
417
+ self.assertEqual(host, str(parts.gethost()))
418
+ self.assertEqual(port, parts.getport())
419
+
420
+ def test_ipv6_literal(self):
421
+ cases = [
422
+ ("http://[::1]:5432/foo/", "0000:0000:0000:0000:0000:0000:0000:0001", 5432),
423
+ (
424
+ "http://[dead:beef::1]:5432/foo/",
425
+ "dead:beef:0000:0000:0000:0000:0000:0001",
426
+ 5432,
427
+ ),
428
+ (
429
+ "http://[dead:beef::]:5432/foo/",
430
+ "dead:beef:0000:0000:0000:0000:0000:0000",
431
+ 5432,
432
+ ),
416
433
  (
417
434
  "http://[dead:beef:cafe:5417:affe:8FA3:deaf:feed]:5432/foo/",
418
435
  "dead:beef:cafe:5417:affe:8fa3:deaf:feed",
419
436
  5432,
420
437
  ),
421
- ("http://[::12.34.56.78]:5432/foo/", "::c22:384e", 5432),
422
- ("http://[::ffff:12.34.56.78]:5432/foo/", "::ffff:c22:384e", 5432),
423
- ("http://Test.python.org/foo/", "test.python.org", None),
424
- ("http://12.34.56.78/foo/", "12.34.56.78", None),
425
- ("http://[::1]/foo/", "::1", None),
426
- ("http://[dead:beef::1]/foo/", "dead:beef::1", None),
427
- ("http://[dead:beef::]/foo/", "dead:beef::", None),
438
+ ("http://[::1]/foo/", "0000:0000:0000:0000:0000:0000:0000:0001", None),
439
+ (
440
+ "http://[dead:beef::1]/foo/",
441
+ "dead:beef:0000:0000:0000:0000:0000:0001",
442
+ None,
443
+ ),
444
+ (
445
+ "http://[dead:beef::]/foo/",
446
+ "dead:beef:0000:0000:0000:0000:0000:0000",
447
+ None,
448
+ ),
428
449
  (
429
450
  "http://[dead:beef:cafe:5417:affe:8FA3:deaf:feed]/foo/",
430
451
  "dead:beef:cafe:5417:affe:8fa3:deaf:feed",
431
452
  None,
432
453
  ),
433
- ("http://[::12.34.56.78]/foo/", "::c22:384e", None),
434
- ("http://[::ffff:12.34.56.78]/foo/", "::ffff:c22:384e", None),
435
- ("http://Test.python.org:/foo/", "test.python.org", None),
436
- ("http://12.34.56.78:/foo/", "12.34.56.78", None),
437
- ("http://[::1]:/foo/", "::1", None),
438
- ("http://[dead:beef::1]:/foo/", "dead:beef::1", None),
439
- ("http://[dead:beef::]:/foo/", "dead:beef::", None),
454
+ ("http://[::1]:/foo/", "0000:0000:0000:0000:0000:0000:0000:0001", None),
455
+ (
456
+ "http://[dead:beef::1]:/foo/",
457
+ "dead:beef:0000:0000:0000:0000:0000:0001",
458
+ None,
459
+ ),
460
+ (
461
+ "http://[dead:beef::]:/foo/",
462
+ "dead:beef:0000:0000:0000:0000:0000:0000",
463
+ None,
464
+ ),
440
465
  (
441
466
  "http://[dead:beef:cafe:5417:affe:8FA3:deaf:feed]:/foo/",
442
467
  "dead:beef:cafe:5417:affe:8fa3:deaf:feed",
443
468
  None,
444
469
  ),
445
- ("http://[::12.34.56.78]:/foo/", "::c22:384e", None),
446
- ("http://[::ffff:12.34.56.78]:/foo/", "::ffff:c22:384e", None),
447
470
  ]
448
471
  for uri, host, port in cases:
472
+ for parts in (urisplit(uri), urisplit(uri.encode("ascii"))):
473
+ self.assertEqual(host, parts.gethost().exploded)
474
+ self.assertEqual(port, parts.getport())
475
+
476
+ def test_ipv4_mapped_literal(self):
477
+ # since Python 3.13, the "alternative form" is used for
478
+ # IPv4-mapped addresses, see RFC 4291 2.2 p.3
479
+ cases = [
480
+ (
481
+ "http://[::12.34.56.78]:5432/foo/",
482
+ [
483
+ "0000:0000:0000:0000:0000:0000:0c22:384e",
484
+ "0000:0000:0000:0000:0000:0000:12.34.56.78",
485
+ ],
486
+ 5432,
487
+ ),
488
+ (
489
+ "http://[::ffff:12.34.56.78]:5432/foo/",
490
+ [
491
+ "0000:0000:0000:0000:0000:ffff:0c22:384e",
492
+ "0000:0000:0000:0000:0000:ffff:12.34.56.78",
493
+ ],
494
+ 5432,
495
+ ),
496
+ (
497
+ "http://[::12.34.56.78]/foo/",
498
+ [
499
+ "0000:0000:0000:0000:0000:0000:0c22:384e",
500
+ "0000:0000:0000:0000:0000:0000:12.34.56.78",
501
+ ],
502
+ None,
503
+ ),
504
+ (
505
+ "http://[::ffff:12.34.56.78]/foo/",
506
+ [
507
+ "0000:0000:0000:0000:0000:ffff:0c22:384e",
508
+ "0000:0000:0000:0000:0000:ffff:12.34.56.78",
509
+ ],
510
+ None,
511
+ ),
512
+ (
513
+ "http://[::12.34.56.78]:/foo/",
514
+ [
515
+ "0000:0000:0000:0000:0000:0000:0c22:384e",
516
+ "0000:0000:0000:0000:0000:0000:12.34.56.78",
517
+ ],
518
+ None,
519
+ ),
520
+ (
521
+ "http://[::ffff:12.34.56.78]:/foo/",
522
+ [
523
+ "0000:0000:0000:0000:0000:ffff:0c22:384e",
524
+ "0000:0000:0000:0000:0000:ffff:12.34.56.78",
525
+ ],
526
+ None,
527
+ ),
528
+ ]
529
+ for uri, hosts, port in cases:
449
530
  parts = urisplit(uri)
450
- self.assertEqual(host, str(parts.gethost()))
451
- self.assertEqual(port, parts.getport())
531
+ self.assertIn(parts.gethost().exploded, hosts)
532
+ self.assertEqual(parts.getport(), port)
452
533
  parts = urisplit(uri.encode("ascii"))
453
- self.assertEqual(host, str(parts.gethost()))
454
- self.assertEqual(port, parts.getport())
534
+ self.assertIn(parts.gethost().exploded, hosts)
535
+ self.assertEqual(parts.getport(), port)
455
536
 
456
537
  def test_invalid_ip_literal(self):
457
538
  uris = [
@@ -3,16 +3,14 @@ envlist = check-manifest,docs,doctest,flake8,py
3
3
 
4
4
  [testenv]
5
5
  deps =
6
- coverage
7
6
  pytest
8
7
  pytest-cov
9
8
  commands =
10
- py.test --basetemp={envtmpdir} --cov=uritools {posargs}
9
+ py.test --basetemp={envtmpdir} --cov=uritools --cov-report term-missing {posargs}
11
10
 
12
11
  [testenv:check-manifest]
13
12
  deps =
14
- check-manifest==0.44; python_version < "3.8"
15
- check-manifest; python_version >= "3.8"
13
+ check-manifest
16
14
  commands =
17
15
  check-manifest
18
16
  skip_install = true
@@ -32,7 +30,7 @@ commands =
32
30
  [testenv:flake8]
33
31
  deps =
34
32
  flake8
35
- flake8-black; implementation_name == "cpython"
33
+ flake8-black
36
34
  flake8-bugbear
37
35
  flake8-import-order
38
36
  commands =
@@ -1,153 +0,0 @@
1
- # Makefile for Sphinx documentation
2
- #
3
-
4
- # You can set these variables from the command line.
5
- SPHINXOPTS =
6
- SPHINXBUILD = sphinx-build
7
- PAPER =
8
- BUILDDIR = _build
9
-
10
- # Internal variables.
11
- PAPEROPT_a4 = -D latex_paper_size=a4
12
- PAPEROPT_letter = -D latex_paper_size=letter
13
- ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
14
- # the i18n builder cannot share the environment and doctrees with the others
15
- I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
16
-
17
- .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
18
-
19
- help:
20
- @echo "Please use \`make <target>' where <target> is one of"
21
- @echo " html to make standalone HTML files"
22
- @echo " dirhtml to make HTML files named index.html in directories"
23
- @echo " singlehtml to make a single large HTML file"
24
- @echo " pickle to make pickle files"
25
- @echo " json to make JSON files"
26
- @echo " htmlhelp to make HTML files and a HTML help project"
27
- @echo " qthelp to make HTML files and a qthelp project"
28
- @echo " devhelp to make HTML files and a Devhelp project"
29
- @echo " epub to make an epub"
30
- @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
31
- @echo " latexpdf to make LaTeX files and run them through pdflatex"
32
- @echo " text to make text files"
33
- @echo " man to make manual pages"
34
- @echo " texinfo to make Texinfo files"
35
- @echo " info to make Texinfo files and run them through makeinfo"
36
- @echo " gettext to make PO message catalogs"
37
- @echo " changes to make an overview of all changed/added/deprecated items"
38
- @echo " linkcheck to check all external links for integrity"
39
- @echo " doctest to run all doctests embedded in the documentation (if enabled)"
40
-
41
- clean:
42
- -rm -rf $(BUILDDIR)/*
43
-
44
- html:
45
- $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
46
- @echo
47
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
48
-
49
- dirhtml:
50
- $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
51
- @echo
52
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
53
-
54
- singlehtml:
55
- $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
56
- @echo
57
- @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
58
-
59
- pickle:
60
- $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
61
- @echo
62
- @echo "Build finished; now you can process the pickle files."
63
-
64
- json:
65
- $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
66
- @echo
67
- @echo "Build finished; now you can process the JSON files."
68
-
69
- htmlhelp:
70
- $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
71
- @echo
72
- @echo "Build finished; now you can run HTML Help Workshop with the" \
73
- ".hhp project file in $(BUILDDIR)/htmlhelp."
74
-
75
- qthelp:
76
- $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
77
- @echo
78
- @echo "Build finished; now you can run "qcollectiongenerator" with the" \
79
- ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
80
- @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/uritools.qhcp"
81
- @echo "To view the help file:"
82
- @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/uritools.qhc"
83
-
84
- devhelp:
85
- $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
86
- @echo
87
- @echo "Build finished."
88
- @echo "To view the help file:"
89
- @echo "# mkdir -p $$HOME/.local/share/devhelp/uritools"
90
- @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/uritools"
91
- @echo "# devhelp"
92
-
93
- epub:
94
- $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
95
- @echo
96
- @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
97
-
98
- latex:
99
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
100
- @echo
101
- @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
102
- @echo "Run \`make' in that directory to run these through (pdf)latex" \
103
- "(use \`make latexpdf' here to do that automatically)."
104
-
105
- latexpdf:
106
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
107
- @echo "Running LaTeX files through pdflatex..."
108
- $(MAKE) -C $(BUILDDIR)/latex all-pdf
109
- @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
110
-
111
- text:
112
- $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
113
- @echo
114
- @echo "Build finished. The text files are in $(BUILDDIR)/text."
115
-
116
- man:
117
- $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
118
- @echo
119
- @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
120
-
121
- texinfo:
122
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
123
- @echo
124
- @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
125
- @echo "Run \`make' in that directory to run these through makeinfo" \
126
- "(use \`make info' here to do that automatically)."
127
-
128
- info:
129
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
130
- @echo "Running Texinfo files through makeinfo..."
131
- make -C $(BUILDDIR)/texinfo info
132
- @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
133
-
134
- gettext:
135
- $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
136
- @echo
137
- @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
138
-
139
- changes:
140
- $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
141
- @echo
142
- @echo "The overview file is in $(BUILDDIR)/changes."
143
-
144
- linkcheck:
145
- $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
146
- @echo
147
- @echo "Link check complete; look for any errors in the above output " \
148
- "or in $(BUILDDIR)/linkcheck/output.txt."
149
-
150
- doctest:
151
- $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
152
- @echo "Testing of doctests in the sources finished, look at the " \
153
- "results in $(BUILDDIR)/doctest/output.txt."
@@ -1,14 +0,0 @@
1
- project = "uritools"
2
- copyright = "2014-2023 Thomas Kemmer"
3
- version = "4.0"
4
- release = "4.0.2"
5
-
6
- extensions = [
7
- "sphinx.ext.autodoc",
8
- "sphinx.ext.coverage",
9
- "sphinx.ext.doctest",
10
- "sphinx.ext.todo",
11
- ]
12
- exclude_patterns = ["_build"]
13
- master_doc = "index"
14
- html_theme = "default"
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