From 428d8dc1ae3f0314e8955f6bc53e907938850b8b Mon Sep 17 00:00:00 2001 From: rlskoeser Date: Fri, 19 Jul 2024 15:03:03 -0400 Subject: [PATCH 01/16] Consolidate setup.cfg and pyproject.toml; drop tox ref #80 --- .github/workflows/check.yml | 2 +- .github/workflows/unit_tests.yml | 7 +- DEVELOPER_NOTES.md | 6 +- pyproject.toml | 87 ++++++++++++++++++++-- setup.cfg | 120 ------------------------------- setup.py | 4 -- 6 files changed, 90 insertions(+), 136 deletions(-) delete mode 100644 setup.cfg delete mode 100644 setup.py diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 8441a5b..7ff3741 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -18,7 +18,7 @@ jobs: with: python-version: "3.10" cache: 'pip' - cache-dependency-path: '**/setup.cfg' + cache-dependency-path: '**/pyproject.toml' - name: Install package with development dependencies run: pip install -e ".[dev]" if: steps.python-cache.outputs.cache-hit != 'true' diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index b9678e9..4e58962 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -30,21 +30,20 @@ jobs: with: python-version: ${{ matrix.python }} cache: 'pip' - cache-dependency-path: '**/setup.cfg' + cache-dependency-path: '**/pyproject.toml' - name: Install package with dependencies run: | pip install -e ".[dev]" - python -m pip install tox tox-gh-actions if: steps.python-cache.outputs.cache-hit != 'true' # for all versions but the one we use for code coverage, run normally - name: Run unit tests normally - run: tox + run: pytest if: ${{ matrix.python != env.COV_PYTHON_VERSION }} # run code coverage in one version only - name: Run unit tests with code coverage reporting - run: tox -e coverage + run: pytest --cov=undate if: ${{ matrix.python == env.COV_PYTHON_VERSION }} - name: Upload test coverage to Codecov uses: codecov/codecov-action@v3 diff --git a/DEVELOPER_NOTES.md b/DEVELOPER_NOTES.md index ce8fa87..c6ee179 100644 --- a/DEVELOPER_NOTES.md +++ b/DEVELOPER_NOTES.md @@ -57,11 +57,11 @@ We use [pre-commit](https://pre-commit.com/) for automated checks and consistent ## Running unit tests -Tests can be run with either `tox` or `pytest`. +Tests can be run with `pytest`. -To run all the tests in a single test file, use pytest and specify the path to the test: `pytest tests/test_dateformat/test_base.py` +To run all the tests in a single test file, specify the path, e.g.: `pytest tests/test_dateformat/test_base.py` -To test cases by name, use pytest: `pytest -k test_str` +To test cases by method name, use `-k`: `pytest -k test_str` ## Check python types diff --git a/pyproject.toml b/pyproject.toml index 374b58c..a9663f7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,85 @@ [build-system] -requires = [ - "setuptools>=42", - "wheel" +requires = ["hatchling"] +build-backend = "hatchling.build" + +[project] +name = "undate" +description = "library for working with uncertain, fuzzy, or partially unknown dates and date intervals" +readme = "README.md" +license = {text = "Apache-2"} +requires-python = ">= 3.9" +dynamic = ["version"] +dependencies = [ + "python-dateutil", + "lark" +] +authors = [ + {name = "Rebecca Sutton Koeser"}, + {name = "Cole Crawford"}, + {name = "Julia Damerow"}, + {name = "Robert Casties"}, + {name = "Malte Vogl"}, +# {name = "DHTech", email="dhtech.community@gmail.com"} ? +] +# currently no maintainers separate from authors + +keywords = ["dates", "dating", "uncertainty", "uncertain-dates", "unknown", "partially-known", "digital-humanities"] +classifiers = [ + "Development Status :: 2 - Pre-Alpha", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Intended Audience :: Developers", + "License :: OSI Approved :: Apache Software License", + "Operating System :: OS Independent", + "Topic :: Software Development :: Libraries :: Python Modules", + "Topic :: Utilities", + "Typing :: Typed" +] + +[project.optional-dependencies] +docs = [ + "sphinx<7.0.0", + "sphinx_rtd_theme", + "m2r2", +] +dev = [ + "black>=22.10.0", + "pre-commit>=2.20.0", + "twine", + "wheel", + "build", + "mypy", + "treon", + "nbconvert>=7.1.0", + "undate[docs]", +] +test = [ + "pytest>=7.2", + "pytest-ordering", + "pytest-cov", +] +all = [ + "undate[dev]", + "undate[test]", +] + +[project.urls] +Homepage = "https://github.com/dh-tech/undate-python" +Documentation = "https://undate-python.readthedocs.io/en/latest/" +Repository = "https://github.com/dh-tech/undate-python.git" +Issues = "https://github.com/dh-tech/undate-python/issues" +Changelog = "https://github.com/dh-tech/undate/main/master/CHANGELOG.md" + + +[tool.hatch.version] +path = "src/undate/__init__.py" + +[tool.hatch.build.targets.sdist] +include = [ + "src/undate/**/*.py", + "src/undate/**/*.lark", + "/tests", ] -build-backend = "setuptools.build_meta" diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index e30a7fa..0000000 --- a/setup.cfg +++ /dev/null @@ -1,120 +0,0 @@ -[metadata] -name = undate -version = attr: undate.__version__ -author = DHTech -author_email = "dhtech.community@gmail.com" -description = "library for working with uncertain, fuzzy, or partially unknown dates and date intervals" -long_description = file: README.md -license="Apache License, Version 2.0" -long_description_content_type = text/markdown -url = https://github.com/dh-tech/undate-python -project_urls = - Project Home = https://github.com/dh-tech/undate-python - Bug Tracker = https://github.com/dh-tech/undate-python/issues -keywords = "dates dating uncertainty uncertain-dates unknown partially-known digital-humanities" -classifiers = - Development Status :: 2 - Pre-Alpha - Programming Language :: Python :: 3 - Programming Language :: Python :: 3.9 - Programming Language :: Python :: 3.10 - Programming Language :: Python :: 3.11 - Programming Language :: Python :: 3.12 - Intended Audience :: Developers - License :: OSI Approved :: Apache Software License - Operating System :: OS Independent - Topic :: Software Development :: Libraries :: Python Modules - Topic :: Utilities - Typing :: Typed - -# When supported python versions change, update all the following places: -# - classifiers -# - minimum version required in python_requires -# - tox envlist -# - gh-actions -# - python versions in matrix config in unit_tests.yml - -[options] -package_dir = - = src -packages = find: -python_requires = >=3.8 -install_requires = - python-dateutil - lark - -[options.package_data] -* = - *.lark - -[options.extras_require] -all = - %(dev)s - %(test)s -dev = - black>=22.10.0 - pre-commit>=2.20.0 - tox - twine - wheel - build - mypy - treon - nbconvert>=7.1.0 - %(docs)s -test = - pytest>=7.2 - pytest-ordering - pytest-cov -docs = - sphinx<7.0.0 - sphinx_rtd_theme - m2r2 -# NOTES: -# pin sphinx because 7.0 currently not compatible with rtd theme -# treon depends on nbconvert; require newer version to avoid lxml_html_clean dependency error - -[options.packages.find] -where = src - -[tox:tox] -envlist = py39, py310, py311, py312 -isolated_build = True - -[gh-actions] -python = - 3.9: py39 - 3.10: py310 - 3.11: py311 - 3.12: py312 - -[pytest] -minversion = 6.0 -addopts = -ra -q -testpaths = - tests - -[testenv] -deps = - -e ./[test] -commands = pytest {posargs} - -[testenv:flake8] -deps = - flake8 -commands = - flake8 --ignore=E501,E402,F401 src/undate/ tests/ - -[testenv:coverage] -deps = - -e ./[test] -commands = - pytest --cov=./ --cov-report=xml - -[testenv:docs] -description = invoke sphinx-build to build the HTML docs -# NOTE: base python should match whatever we're using in GitHub Actions -basepython = python3.10 -deps = - -e ./[docs] -commands = sphinx-build -d "{toxworkdir}/docs_doctree" docs "{toxworkdir}/docs_out" --color -W -bhtml {posargs} - python -c 'import pathlib; print("documentation available under file://\{0\}".format(pathlib.Path(r"{toxworkdir}") / "docs_out" / "index.html"))' diff --git a/setup.py b/setup.py deleted file mode 100644 index 1abbd06..0000000 --- a/setup.py +++ /dev/null @@ -1,4 +0,0 @@ -import setuptools - -if __name__ == "__main__": - setuptools.setup() From 2be77390888cb71424e8a787abf6eab624f91276 Mon Sep 17 00:00:00 2001 From: rlskoeser Date: Fri, 19 Jul 2024 15:09:15 -0400 Subject: [PATCH 02/16] Install test dependencies only in ci, not all dev deps --- .github/workflows/unit_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 4e58962..5fdc16b 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -33,7 +33,7 @@ jobs: cache-dependency-path: '**/pyproject.toml' - name: Install package with dependencies run: | - pip install -e ".[dev]" + pip install -e ".[test]" if: steps.python-cache.outputs.cache-hit != 'true' # for all versions but the one we use for code coverage, run normally From 38bb264e1deab35c30892e8fa2112e9c2247012e Mon Sep 17 00:00:00 2001 From: rlskoeser Date: Fri, 19 Jul 2024 15:57:57 -0400 Subject: [PATCH 03/16] Update sphinx docs build; drop dependency on tox --- .github/workflows/check.yml | 2 +- CONTRIBUTING.md | 2 +- DEVELOPER_NOTES.md | 14 +++++++++++--- docs/_static/dhtech-logo.png | Bin 0 -> 4432 bytes docs/_static/logo.png | Bin 27776 -> 0 bytes docs/authors.rst | 1 - docs/conf.py | 12 ++++++++++-- docs/contributing.rst | 3 +++ docs/contributors.rst | 3 +++ docs/devnotes.rst | 3 +++ docs/index.rst | 4 +++- docs/readme.rst | 2 -- docs/requirements.txt | 4 ---- 13 files changed, 35 insertions(+), 15 deletions(-) create mode 100644 docs/_static/dhtech-logo.png delete mode 100644 docs/_static/logo.png delete mode 100644 docs/authors.rst create mode 100644 docs/contributing.rst create mode 100644 docs/contributors.rst create mode 100644 docs/devnotes.rst delete mode 100644 docs/requirements.txt diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 7ff3741..22e120f 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -29,7 +29,7 @@ jobs: # check docs - name: Check that documentation can be built - run: tox -e docs + run: sphinx-build docs docs/_build # check types with mypy - name: Check types in python src directory; install needed types diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 749c3e6..2a459de 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,4 @@ -# Contributing to undate - a python library for working with uncertain or partially known dates +# Contributing to undate Hey there! diff --git a/DEVELOPER_NOTES.md b/DEVELOPER_NOTES.md index c6ee179..2ddf72e 100644 --- a/DEVELOPER_NOTES.md +++ b/DEVELOPER_NOTES.md @@ -20,7 +20,7 @@ Pull requests for new features should be made against the **develop** branch. We recommended installing git-flow. 1. On OSX, use brew or ports, e.g.: `brew install git-flow`; on Ubuntu/Debian, `apt-get install git-flow` -2. Initialize it in your local copy of this repository: run `git flow init` and accept all the defaults. +2. Initialize it in your local copy of this repository: run `git flow init` and accept all the defaults. 3. Use `git flow feature start feature-name` to create a new feature development branch. 4. Feature branches can be merged locally with git flow or by GitHub pull request. 4. Use git flow for releases with `git flow release start x.x.x` and `git flow release finish x.x.x`, where x.x.x is the version number for the new release. @@ -74,8 +74,16 @@ mypy --install-types ``` 2. Run `mypy src/` to check types. -### Documentation can be built with tox +### Documentation + +Documentation can be built with sphinx. Make sure you have the dependencies installed: ```sh -tox -e docs +pip install -e ".[docs]" ``` + +```sh +sphinx-build docs docs/_build +``` + +HTML documentation will be generated in `docs/_build/html` \ No newline at end of file diff --git a/docs/_static/dhtech-logo.png b/docs/_static/dhtech-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4d54c15391d95fc5845c9c35768930cb264506e3 GIT binary patch literal 4432 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 literal 0 HcmV?d00001 diff --git a/docs/_static/logo.png b/docs/_static/logo.png deleted file mode 100644 index bc521744bde4687cce322dc6042130c2aaa8a7e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27776 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 diff --git a/docs/authors.rst b/docs/authors.rst deleted file mode 100644 index 30616f6..0000000 --- a/docs/authors.rst +++ /dev/null @@ -1 +0,0 @@ -.. include:: ../Authors.rst diff --git a/docs/conf.py b/docs/conf.py index 2185873..d78b6e1 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -32,7 +32,11 @@ # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. -extensions = ["sphinx.ext.autodoc", "sphinx.ext.intersphinx", "m2r2"] +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.intersphinx", + "m2r2", +] # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] @@ -56,4 +60,8 @@ # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] -html_logo = "_static/logo.png" +# use dhtech logo for now +html_logo = "_static/dhtech-logo.png" + +# TODO: can we get both github and sphinx links working? +m2r_parse_relative_links = True diff --git a/docs/contributing.rst b/docs/contributing.rst new file mode 100644 index 0000000..9a20bb1 --- /dev/null +++ b/docs/contributing.rst @@ -0,0 +1,3 @@ +.. _CONTRIBUTING: + +.. mdinclude:: ../CONTRIBUTING.md diff --git a/docs/contributors.rst b/docs/contributors.rst new file mode 100644 index 0000000..b915a8c --- /dev/null +++ b/docs/contributors.rst @@ -0,0 +1,3 @@ +.. _CONTRIBUTORS: + +.. mdinclude:: ../CONTRIBUTORS.md diff --git a/docs/devnotes.rst b/docs/devnotes.rst new file mode 100644 index 0000000..962d176 --- /dev/null +++ b/docs/devnotes.rst @@ -0,0 +1,3 @@ +.. _DEVELOPER_NOTES: + +.. mdinclude:: ../DEVELOPER_NOTES.md diff --git a/docs/index.rst b/docs/index.rst index e01b84d..f6bc2e0 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -10,7 +10,9 @@ Undate documentation readme undate - authors + contributing + devnotes + contributors license Indices and tables diff --git a/docs/readme.rst b/docs/readme.rst index 21a7aa4..97d4958 100644 --- a/docs/readme.rst +++ b/docs/readme.rst @@ -1,3 +1 @@ -Introduction -============ .. mdinclude:: ../README.md diff --git a/docs/requirements.txt b/docs/requirements.txt deleted file mode 100644 index d48afdb..0000000 --- a/docs/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ --e .[dev] -sphinx -sphinx_rtd_theme -m2r2 From 4f1f7846c727a4263b0ed5b1c2202d78f8cdd81f Mon Sep 17 00:00:00 2001 From: rlskoeser Date: Fri, 19 Jul 2024 16:12:55 -0400 Subject: [PATCH 04/16] Integrate github docs with sphinx; turn on relative links --- .github/workflows/check.yml | 2 +- CONTRIBUTING.md | 2 +- DEVELOPER_NOTES.md | 6 +++--- README.md | 2 +- docs/{contributing.rst => CONTRIBUTING.rst} | 0 docs/{contributors.rst => CONTRIBUTORS.rst} | 0 docs/{devnotes.rst => DEVELOPER_NOTES.rst} | 2 -- docs/{license.rst => LICENSE.rst} | 0 docs/conf.py | 2 +- docs/index.rst | 8 ++++---- docs/undate.rst | 4 ++-- 11 files changed, 13 insertions(+), 15 deletions(-) rename docs/{contributing.rst => CONTRIBUTING.rst} (100%) rename docs/{contributors.rst => CONTRIBUTORS.rst} (100%) rename docs/{devnotes.rst => DEVELOPER_NOTES.rst} (62%) rename docs/{license.rst => LICENSE.rst} (100%) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 22e120f..56bb6ec 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -29,7 +29,7 @@ jobs: # check docs - name: Check that documentation can be built - run: sphinx-build docs docs/_build + run: sphinx-build docs docs/_build # --fail-on-warning # check types with mypy - name: Check types in python src directory; install needed types diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2a459de..2ba402d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,7 +20,7 @@ If you report a bug, please include any error messages you get and a full descri ## Submitting Use Cases and Example Data We are particularly interested in collecting more use cases and example data where undate would be helpful! -Example data can be added to the [examples/use-cases](examples/use-cases) folder by a pull request. +Example data can be added to the [examples/](https://github.com/dh-tech/undate-python/tree/develop/examples/) folder by a pull request. ## Getting Help The best and recommended way to get help is to join the [DHTech Slack](https://dh-tech.github.io/join/) and ask for help there. Only in cases when this is not feasible at all, you can open a new issue and tag it with "Help Request". diff --git a/DEVELOPER_NOTES.md b/DEVELOPER_NOTES.md index 2ddf72e..7817c88 100644 --- a/DEVELOPER_NOTES.md +++ b/DEVELOPER_NOTES.md @@ -45,7 +45,7 @@ Install an editable version of the local package along with python dependencies pip install -e ".[dev]" ``` -## Install pre-commit hooks +### Install pre-commit hooks ```sh pre-commit install @@ -55,7 +55,7 @@ We use [pre-commit](https://pre-commit.com/) for automated checks and consistent ## Tests, documentation, and other checks -## Running unit tests +### Running unit tests Tests can be run with `pytest`. @@ -63,7 +63,7 @@ To run all the tests in a single test file, specify the path, e.g.: `pytest test To test cases by method name, use `-k`: `pytest -k test_str` -## Check python types +### Check python types Python typing is currently enforced on pull requests as part of a GitHub Actions Continuous Integration check using `mypy`. diff --git a/README.md b/README.md index 3a091bf..8e79c79 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# undate-python +# undate overview **undate** is a python library for working with uncertain or partially known dates. diff --git a/docs/contributing.rst b/docs/CONTRIBUTING.rst similarity index 100% rename from docs/contributing.rst rename to docs/CONTRIBUTING.rst diff --git a/docs/contributors.rst b/docs/CONTRIBUTORS.rst similarity index 100% rename from docs/contributors.rst rename to docs/CONTRIBUTORS.rst diff --git a/docs/devnotes.rst b/docs/DEVELOPER_NOTES.rst similarity index 62% rename from docs/devnotes.rst rename to docs/DEVELOPER_NOTES.rst index 962d176..d392363 100644 --- a/docs/devnotes.rst +++ b/docs/DEVELOPER_NOTES.rst @@ -1,3 +1 @@ -.. _DEVELOPER_NOTES: - .. mdinclude:: ../DEVELOPER_NOTES.md diff --git a/docs/license.rst b/docs/LICENSE.rst similarity index 100% rename from docs/license.rst rename to docs/LICENSE.rst diff --git a/docs/conf.py b/docs/conf.py index d78b6e1..77f65d4 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -63,5 +63,5 @@ # use dhtech logo for now html_logo = "_static/dhtech-logo.png" -# TODO: can we get both github and sphinx links working? +# NOTE: can we get both github and sphinx links working? m2r_parse_relative_links = True diff --git a/docs/index.rst b/docs/index.rst index f6bc2e0..286bd64 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -10,10 +10,10 @@ Undate documentation readme undate - contributing - devnotes - contributors - license + CONTRIBUTING + DEVELOPER_NOTES + CONTRIBUTORS + LICENSE Indices and tables ================== diff --git a/docs/undate.rst b/docs/undate.rst index dcaf476..303a004 100644 --- a/docs/undate.rst +++ b/docs/undate.rst @@ -1,5 +1,5 @@ -Undate -====== +API documentation +================= .. autoclass:: undate.undate.Undate :members: From 795ec28b611817eeb0f0dbde4377b4ca93c52d7f Mon Sep 17 00:00:00 2001 From: rlskoeser Date: Fri, 19 Jul 2024 16:17:53 -0400 Subject: [PATCH 05/16] Add setuptools to docs dependencies for sphinx/m2r2 --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index a9663f7..300f698 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,6 +44,7 @@ docs = [ "sphinx<7.0.0", "sphinx_rtd_theme", "m2r2", + "setuptools" # required for sphinx to load m2r2 as an extension ] dev = [ "black>=22.10.0", From 0ddc395f19135f4b3cc30a772d1eb5b93ba35823 Mon Sep 17 00:00:00 2001 From: rlskoeser Date: Fri, 19 Jul 2024 16:47:07 -0400 Subject: [PATCH 06/16] Run checks with python 3.12 --- .github/workflows/check.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 56bb6ec..41d8fc3 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -13,10 +13,10 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Set up Python 3.10 + - name: Set up Python 3.12 uses: actions/setup-python@v5 with: - python-version: "3.10" + python-version: "3.12" cache: 'pip' cache-dependency-path: '**/pyproject.toml' - name: Install package with development dependencies From 5028000ec4c444259f59c44a248c063ad33e8f41 Mon Sep 17 00:00:00 2001 From: rlskoeser Date: Fri, 19 Jul 2024 17:12:47 -0400 Subject: [PATCH 07/16] Switch to newer version of sphinx and sphinx theme --- docs/conf.py | 2 +- docs/index.rst | 2 +- pyproject.toml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 77f65d4..68adc9d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -53,7 +53,7 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = "sphinx_rtd_theme" +html_theme = "alabaster" # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, diff --git a/docs/index.rst b/docs/index.rst index 286bd64..78bce48 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -5,7 +5,7 @@ Undate documentation .. toctree:: - :maxdepth: 3 + :maxdepth: 2 :caption: Contents: readme diff --git a/pyproject.toml b/pyproject.toml index 300f698..dc87e3d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -41,8 +41,8 @@ classifiers = [ [project.optional-dependencies] docs = [ - "sphinx<7.0.0", - "sphinx_rtd_theme", + "sphinx<=7.0.0", + "alabaster", "m2r2", "setuptools" # required for sphinx to load m2r2 as an extension ] From 703a9c4770341b489dabb4b5c055021695eb3784 Mon Sep 17 00:00:00 2001 From: rlskoeser Date: Fri, 19 Jul 2024 17:17:37 -0400 Subject: [PATCH 08/16] Try working version of sphinx 7.x --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index dc87e3d..aa7c9b4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -41,7 +41,7 @@ classifiers = [ [project.optional-dependencies] docs = [ - "sphinx<=7.0.0", + "sphinx>=7.0.0,<7.3", "alabaster", "m2r2", "setuptools" # required for sphinx to load m2r2 as an extension From 448d2d1f7bcef80955e82d3f4691b33739c4a9ff Mon Sep 17 00:00:00 2001 From: rlskoeser Date: Fri, 19 Jul 2024 17:18:55 -0400 Subject: [PATCH 09/16] Adjust capitalization --- docs/conf.py | 4 ++-- docs/index.rst | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 68adc9d..f1d0746 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -17,8 +17,8 @@ # -- Project information ----------------------------------------------------- -project = "Undate" -copyright = "2022, DHtech" +project = "undate" +copyright = "2024, DHtech" author = "DHtech Community" # The full version, including alpha/beta/rc tags diff --git a/docs/index.rst b/docs/index.rst index 78bce48..de36eaa 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,4 +1,4 @@ -Undate documentation +undate documentation ==================== **undate** is a python library for working with uncertain or partially known dates. From 66a565746a1adf54b7a7ff544aaace371d56df4e Mon Sep 17 00:00:00 2001 From: rlskoeser Date: Fri, 19 Jul 2024 18:07:30 -0400 Subject: [PATCH 10/16] Add preliminary logo and add dh-tech to docs sidebar --- docs/_static/dhtech-logo.svg | 32 ++++++++++++++++++++++++++++ docs/_static/undate_logo.png | Bin 0 -> 17872 bytes docs/_templates/sidebar_dhtech.html | 8 +++++++ docs/conf.py | 27 +++++++++++++++++++---- 4 files changed, 63 insertions(+), 4 deletions(-) create mode 100644 docs/_static/dhtech-logo.svg create mode 100644 docs/_static/undate_logo.png create mode 100644 docs/_templates/sidebar_dhtech.html diff --git a/docs/_static/dhtech-logo.svg b/docs/_static/dhtech-logo.svg new file mode 100644 index 0000000..069a40b --- /dev/null +++ b/docs/_static/dhtech-logo.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/_static/undate_logo.png b/docs/_static/undate_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4b1c352b73909eeb2a1cc270877b80c7171837fa GIT binary patch literal 17872 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 literal 0 HcmV?d00001 diff --git a/docs/_templates/sidebar_dhtech.html b/docs/_templates/sidebar_dhtech.html new file mode 100644 index 0000000..eea7014 --- /dev/null +++ b/docs/_templates/sidebar_dhtech.html @@ -0,0 +1,8 @@ +
+

powered by:

+ +DH-Tech +

DHTech Community

+
+ +
\ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index f1d0746..c7f04cb 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -60,8 +60,27 @@ # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] -# use dhtech logo for now -html_logo = "_static/dhtech-logo.png" - -# NOTE: can we get both github and sphinx links working? +# preliminary undate logo +# html_logo = "_static/undate_logo.png" + +html_theme_options = { + "logo": "undate_logo.png", + "logo_name": False, + "github_user": "dh-tech", + "github_repo": "undate-python", + "github_button": False, + "github_banner": True, +} + +html_sidebars = { + "**": [ + "about.html", + "navigation.html", + "localtoc.html", + "searchbox.html", + "sidebar_dhtech.html", + ], +} + +# turn on relative links; make sure both github and sphinx links work m2r_parse_relative_links = True From 011dd5090c182e6c60067dba0a1747e50458c68b Mon Sep 17 00:00:00 2001 From: rlskoeser Date: Fri, 19 Jul 2024 18:09:53 -0400 Subject: [PATCH 11/16] Try adding undate logo to readme --- README.md | 2 ++ _static/undate_logo.png | Bin 0 -> 17872 bytes 2 files changed, 2 insertions(+) create mode 100644 _static/undate_logo.png diff --git a/README.md b/README.md index 8e79c79..54bb4cb 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # undate overview +![undate](_static/undate_logo.png) + **undate** is a python library for working with uncertain or partially known dates. It was initially created as part of a [DH-Tech](https://dh-tech.github.io/) hackathon in November 2022. diff --git a/_static/undate_logo.png b/_static/undate_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4b1c352b73909eeb2a1cc270877b80c7171837fa GIT binary patch literal 17872 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 literal 0 HcmV?d00001 From 517542b47d8f33ab6f49e6db048b0a54ca1dab0c Mon Sep 17 00:00:00 2001 From: rlskoeser Date: Fri, 19 Jul 2024 18:19:12 -0400 Subject: [PATCH 12/16] Try version with transparent background --- _static/undate_logo.png | Bin 17872 -> 31234 bytes docs/_static/undate_logo.png | Bin 17872 -> 31234 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/_static/undate_logo.png b/_static/undate_logo.png index 4b1c352b73909eeb2a1cc270877b80c7171837fa..fed6798e481d8071574d85a2b066e0c39f3bc664 100644 GIT binary patch literal 31234 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 @+6sl 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 literal 17872 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 diff --git a/docs/_static/undate_logo.png b/docs/_static/undate_logo.png index 4b1c352b73909eeb2a1cc270877b80c7171837fa..fed6798e481d8071574d85a2b066e0c39f3bc664 100644 GIT binary patch literal 31234 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 @+6sl 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 literal 17872 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 From 476007abcc11496b18ec70ddd8aa97ba7f210065 Mon Sep 17 00:00:00 2001 From: rlskoeser Date: Fri, 19 Jul 2024 19:05:18 -0400 Subject: [PATCH 13/16] Require newer version of m2r2 --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index aa7c9b4..f7c432d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -41,9 +41,9 @@ classifiers = [ [project.optional-dependencies] docs = [ - "sphinx>=7.0.0,<7.3", + "sphinx>=7.0.0,<7.3", # 7.3+ causes error with m2r2 "alabaster", - "m2r2", + "m2r2>=0.3.3", "setuptools" # required for sphinx to load m2r2 as an extension ] dev = [ From 867ce9340d37b8cc65321471e7def8214a2794ce Mon Sep 17 00:00:00 2001 From: rlskoeser Date: Sat, 20 Jul 2024 11:18:12 -0400 Subject: [PATCH 14/16] Move pytest config into pyproject.toml --- pyproject.toml | 14 ++++++++++---- pytest.ini | 4 ---- 2 files changed, 10 insertions(+), 8 deletions(-) delete mode 100644 pytest.ini diff --git a/pyproject.toml b/pyproject.toml index f7c432d..16d527e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -41,10 +41,9 @@ classifiers = [ [project.optional-dependencies] docs = [ - "sphinx>=7.0.0,<7.3", # 7.3+ causes error with m2r2 + "sphinx>=7.0.0", "alabaster", - "m2r2>=0.3.3", - "setuptools" # required for sphinx to load m2r2 as an extension + "myst-parser" ] dev = [ "black>=22.10.0", @@ -54,7 +53,7 @@ dev = [ "build", "mypy", "treon", - "nbconvert>=7.1.0", + "undate", "undate[docs]", ] test = [ @@ -84,3 +83,10 @@ include = [ "src/undate/**/*.lark", "/tests", ] + +[tool.pytest.ini_options] +pythonpath = "src/" +markers = [ + "last : run marked tests after all others", + "first : run marked tests before all others" +] \ No newline at end of file diff --git a/pytest.ini b/pytest.ini deleted file mode 100644 index a0a5fea..0000000 --- a/pytest.ini +++ /dev/null @@ -1,4 +0,0 @@ -[pytest] -markers = - last: run marked tests after all others - first: run marked tests before all others \ No newline at end of file From 09d46b91a64eae97106e3dcc2b6863a91c6e579e Mon Sep 17 00:00:00 2001 From: rlskoeser Date: Sat, 20 Jul 2024 11:19:54 -0400 Subject: [PATCH 15/16] Switch to myst-parser and reconfigure markdown in sphinx docs --- .all-contributorsrc | 5 +++-- CONTRIBUTING.md | 2 +- CONTRIBUTORS.md | 8 ++++++-- README.md | 7 ++++--- docs/CONTRIBUTING.md | 2 ++ docs/CONTRIBUTING.rst | 3 --- docs/CONTRIBUTORS.md | 2 ++ docs/CONTRIBUTORS.rst | 3 --- docs/DEVELOPER_NOTES.md | 2 ++ docs/DEVELOPER_NOTES.rst | 1 - docs/LICENSE.md | 4 ++++ docs/LICENSE.rst | 3 --- docs/_static/custom.css | 7 +++++++ docs/conf.py | 7 +++++-- docs/readme.md | 4 ++++ docs/readme.rst | 1 - 16 files changed, 40 insertions(+), 21 deletions(-) create mode 100644 docs/CONTRIBUTING.md delete mode 100644 docs/CONTRIBUTING.rst create mode 100644 docs/CONTRIBUTORS.md delete mode 100644 docs/CONTRIBUTORS.rst create mode 100644 docs/DEVELOPER_NOTES.md delete mode 100644 docs/DEVELOPER_NOTES.rst create mode 100644 docs/LICENSE.md delete mode 100644 docs/LICENSE.rst create mode 100644 docs/_static/custom.css create mode 100644 docs/readme.md delete mode 100644 docs/readme.rst diff --git a/.all-contributorsrc b/.all-contributorsrc index aa4224b..e5104c3 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -72,5 +72,6 @@ "repoType": "github", "repoHost": "https://github.com", "projectName": "undate-python", - "projectOwner": "dh-tech" -} + "projectOwner": "dh-tech", + "badgeTemplate": "![All Contributors](https://img.shields.io/github/all-contributors/dh-tech/undate-python?color=ee8449&style=flat-square)" +} \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2ba402d..0fcaf9d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,7 +20,7 @@ If you report a bug, please include any error messages you get and a full descri ## Submitting Use Cases and Example Data We are particularly interested in collecting more use cases and example data where undate would be helpful! -Example data can be added to the [examples/](https://github.com/dh-tech/undate-python/tree/develop/examples/) folder by a pull request. +Example data can be added to the [examples/](https://github.com/dh-tech/undate-python/tree/main/examples/) folder by a pull request. ## Getting Help The best and recommended way to get help is to join the [DHTech Slack](https://dh-tech.github.io/join/) and ask for help there. Only in cases when this is not feasible at all, you can open a new issue and tag it with "Help Request". diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 2077a52..138c82d 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -1,9 +1,13 @@ -# Contributors +# All Contributors + +We use [All Contributors](https://allcontributors.org/) because we recognize that all kinds of contributions are valuable and important. -[![All Contributors](https://img.shields.io/badge/all_contributors-5-orange.svg?style=flat-square)](#contributors-) +![All Contributors](https://img.shields.io/github/all-contributors/dh-tech/undate-python?color=ee8449&style=flat-square) +## Contributors + diff --git a/README.md b/README.md index 54bb4cb..519fe2a 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ It was initially created as part of a [DH-Tech](https://dh-tech.github.io/) hack [![codecov](https://codecov.io/gh/dh-tech/undate-python/branch/main/graph/badge.svg?token=GE7HZE8C9D)](https://codecov.io/gh/dh-tech/undate-python) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) -[![All Contributors](https://img.shields.io/badge/all_contributors-5-orange.svg?style=flat-square)](#contributors-) +[![All Contributors](https://img.shields.io/badge/all_contributors-5-orange.svg?style=flat-square)](CONTRIBUTORS.md) Read [Contributors](CONTRIBUTORS.md) for detailed contribution information. @@ -28,7 +28,8 @@ Read [Contributors](CONTRIBUTORS.md) for detailed contribution information. Often humanities and cultural data include imprecise or uncertain temporal information. We want to store that information but also work with it in a structured way, not just treat it as text for display. Different projects may need to work with or convert between different date formats or even different calendars. -An `undate.Undate` is analogous to python's builtin `datetime.date` object, but with support for varying degrees of precision and unknown information. You can initialize an undate with either strings or numbers for whichever parts of the date are known or partially known. An `Undate` can take an optional label. +An `undate.Undate` is analogous to python’s builtin `datetime.date` object, but with support for varying degrees of precision and unknown information. You can initialize an undate with either strings or numbers for whichever parts of the date are known or partially known. An `Undate` can take an optional label. + ```python from undate.undate import Undate @@ -155,7 +156,7 @@ You can initialize `Undate` or `UndateInterval` objects by parsing a date string ## Documentation -Project documentation is available on ReadTheDocs https://undate-python.readthedocs.io/en/latest/ +Project documentation is [available on ReadTheDocs](https://undate-python.readthedocs.io/en/latest/). For instructions on setting up for local development, see [Developer Notes](DEVELOPER_NOTES.md). diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md new file mode 100644 index 0000000..435d357 --- /dev/null +++ b/docs/CONTRIBUTING.md @@ -0,0 +1,2 @@ +```{include} ../CONTRIBUTING.md +``` \ No newline at end of file diff --git a/docs/CONTRIBUTING.rst b/docs/CONTRIBUTING.rst deleted file mode 100644 index 9a20bb1..0000000 --- a/docs/CONTRIBUTING.rst +++ /dev/null @@ -1,3 +0,0 @@ -.. _CONTRIBUTING: - -.. mdinclude:: ../CONTRIBUTING.md diff --git a/docs/CONTRIBUTORS.md b/docs/CONTRIBUTORS.md new file mode 100644 index 0000000..c8e001d --- /dev/null +++ b/docs/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +```{include} ../CONTRIBUTORS.md +``` diff --git a/docs/CONTRIBUTORS.rst b/docs/CONTRIBUTORS.rst deleted file mode 100644 index b915a8c..0000000 --- a/docs/CONTRIBUTORS.rst +++ /dev/null @@ -1,3 +0,0 @@ -.. _CONTRIBUTORS: - -.. mdinclude:: ../CONTRIBUTORS.md diff --git a/docs/DEVELOPER_NOTES.md b/docs/DEVELOPER_NOTES.md new file mode 100644 index 0000000..e88590a --- /dev/null +++ b/docs/DEVELOPER_NOTES.md @@ -0,0 +1,2 @@ +```{include} ../DEVELOPER_NOTES.md +``` diff --git a/docs/DEVELOPER_NOTES.rst b/docs/DEVELOPER_NOTES.rst deleted file mode 100644 index d392363..0000000 --- a/docs/DEVELOPER_NOTES.rst +++ /dev/null @@ -1 +0,0 @@ -.. mdinclude:: ../DEVELOPER_NOTES.md diff --git a/docs/LICENSE.md b/docs/LICENSE.md new file mode 100644 index 0000000..b6e36d7 --- /dev/null +++ b/docs/LICENSE.md @@ -0,0 +1,4 @@ +# License + +```{include} ../LICENSE.md +``` diff --git a/docs/LICENSE.rst b/docs/LICENSE.rst deleted file mode 100644 index 4f3620b..0000000 --- a/docs/LICENSE.rst +++ /dev/null @@ -1,3 +0,0 @@ -License -======= -.. mdinclude:: ../LICENSE.md diff --git a/docs/_static/custom.css b/docs/_static/custom.css new file mode 100644 index 0000000..aa35e82 --- /dev/null +++ b/docs/_static/custom.css @@ -0,0 +1,7 @@ + +div.sphinxsidebar .powered_by a { + text-decoration: none; + border-bottom: none; + text-align: center; +} + diff --git a/docs/conf.py b/docs/conf.py index c7f04cb..1294ce3 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -35,7 +35,7 @@ extensions = [ "sphinx.ext.autodoc", "sphinx.ext.intersphinx", - "m2r2", + "myst_parser", ] # Add any paths that contain templates here, relative to this directory. @@ -46,7 +46,10 @@ # This pattern also affects html_static_path and html_extra_path. exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] -source_suffix = [".rst", ".md"] +source_suffix = { + ".rst": "restructuredtext", + ".md": "markdown", +} # -- Options for HTML output ------------------------------------------------- diff --git a/docs/readme.md b/docs/readme.md new file mode 100644 index 0000000..4ec94a5 --- /dev/null +++ b/docs/readme.md @@ -0,0 +1,4 @@ +```{include} ../README.md +:relative-docs: / +:relative-images: +``` diff --git a/docs/readme.rst b/docs/readme.rst deleted file mode 100644 index 97d4958..0000000 --- a/docs/readme.rst +++ /dev/null @@ -1 +0,0 @@ -.. mdinclude:: ../README.md From 129b82e644f0101b3204856ecadaddf652430fa3 Mon Sep 17 00:00:00 2001 From: rlskoeser Date: Fri, 16 Aug 2024 16:20:23 -0400 Subject: [PATCH 16/16] Document more contributions --- .all-contributorsrc | 12 ++++++++---- CONTRIBUTORS.md | 6 +++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index e5104c3..f4f31f1 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -14,7 +14,8 @@ "contributions": [ "code", "review", - "test" + "test", + "ideas" ] }, { @@ -38,7 +39,9 @@ "avatar_url": "https://avatars.githubusercontent.com/u/1488847?v=4", "profile": "https://github.com/robcast", "contributions": [ - "data" + "data", + "ideas", + "review" ] }, { @@ -50,7 +53,8 @@ "code", "review", "test", - "eventOrganizing" + "eventOrganizing", + "ideas" ] }, { @@ -74,4 +78,4 @@ "projectName": "undate-python", "projectOwner": "dh-tech", "badgeTemplate": "![All Contributors](https://img.shields.io/github/all-contributors/dh-tech/undate-python?color=ee8449&style=flat-square)" -} \ No newline at end of file +} diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 138c82d..3cfe1f6 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -14,10 +14,10 @@ We use [All Contributors](https://allcontributors.org/) because we recognize tha - + - - + +
Cole Crawford
Cole Crawford

πŸ’» πŸ‘€ ⚠️
Cole Crawford
Cole Crawford

πŸ’» πŸ‘€ ⚠️ πŸ€”
Rebecca Sutton Koeser
Rebecca Sutton Koeser

πŸ’» πŸ‘€ ⚠️ πŸ“ πŸ’‘ πŸ“– πŸ“¦
Robert Casties
Robert Casties

πŸ”£
Julia Damerow
Julia Damerow

πŸ’» πŸ‘€ ⚠️ πŸ“‹
Robert Casties
Robert Casties

πŸ”£ πŸ€” πŸ‘€
Julia Damerow
Julia Damerow

πŸ’» πŸ‘€ ⚠️ πŸ“‹ πŸ€”
Malte Vogl
Malte Vogl

πŸ’» πŸ‘€ ⚠️ πŸ“–