-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Sphinx documentation (incl. built html files) and deploy workflow #3
Add Sphinx documentation (incl. built html files) and deploy workflow #3
Conversation
…, including built html documentation.
Das sind ne Menge roter Tests XD Schön, dass hier noch weiter gearbeitet wird, mir war nicht bewusst, das jemand daran arbeitet aber ich schaue es mir gerne an! |
Oje - werde mir in den nächsten zwei Wochen mal anschauen, woher die grundlegenden Fehler kommen. Die Rohversion sollte eigentlich keine Tests - außer vllt. code quality - beeinflussen, ich wollte mit dem PR erstmal mögliche feature-Wünsche abklappern :) |
Relativ einfach die angegebenen Versionen von Python existieren wohl nicht mehr, warum auch immer, sollte also schnell behoben sein |
…in cache and cube. Hosting on ReadTheDocs has to be done by Owner/ CorrelAid (but can be requested and triggered that way).
Current issues seem to be related to changes/ issues in urllib3 together with cachecontrol. Working on a fix. |
… should be fine...
@@ -138,7 +138,6 @@ Distributed under the MIT License. See `LICENSE.txt` for more information. | |||
A few ideas we should implement in the maybe-near future: | |||
|
|||
- Improve Table parsing. Right now, the parsing is really simple and we should align the cube and table format so that the data frame for tables is more convenient to use. | |||
- Create a source code documentation with Sphinx or similar tools. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice!
src/pystatis/cube.py
Outdated
Defaults to True. | ||
rename_time_variable (bool, optional): If True, rename the time variable. | ||
Defaults to True. | ||
Defaults to True. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not sure about this one but I think Google stylesheet says to intend the line if the string belongs to the previous line so Defaults to True is part of the parameter rename_classifying_variables
. But not important and if it works with Sphinx fine
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another alternative would be to have it (Defaults...
) all in one line. At least locally this solution complies with black & pylint. The problem with sphinx is, that the indentations (without clear, return-separated blocks) are "unexpected" (warning, no error).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM if it works ;)
yea we could definitely publish to readthedocs, but let's first have the local version working and deployed |
Should I add more info on sphinx in the ReadMe? Testing whether the build works is already integrated into the CI/CD (afaik/ afai can test), and local deployment - as far as I understand - would be Opinion/ vision for aforementioned local deployment? |
Yes I think a few sentences or a reference would be helpful to understand what is done here and how to write docu in sphinx. Regarding local deployment I guess the make command is enough so just mention how to create the docu locally. Should also add a custom pre-commit hook. And add long as we don't deploy it maybe create an artifact in the workflow, does GitHub support ? In precious projects on work I created docu with tools in cicd and made the final docu available as artifacts so that a push automatically build the latest docu and make it available as artifacts |
…e-commit hook and changed to hard-coded version in docs, added built documentation to artifacts, #3
|
TODOs: - Create `gh-pages` branch - Add index.html and maybe .nojekyll - Add deploy SSH Key: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-create-ssh-deploy-key - setup GitHub Pages in the settings: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-first-deployment-with-github_token - After that, the documentation should automatically be hosted at http://correlaid.github.io/pystatis Detailed walkthrough: https://pages.github.com/ Addresses #10
Detailed walkthrough: https://pages.github.com/ TODOs:
Note: |
How is this PR related to #4 ? |
I updated the dev branch so you can rebase/merge again. Is this PR ready for merge? |
No, since it already has a deploy workflow - which will likely fail without the existence of a |
Also, update the versions in the workflows Addresses #10
Render parts of the README.md in the respective .rst files
Managed to remove manual updating of the One minor flaw remains: Images are not rendered correctly (yet). |
The documentation can already be found under Actions / Workflow Runs / / Artifacts -> docs. This makes the documentation directory downloadable as a Next steps:
|
I have done the necessary setup steps for the deploy SSH key, you can use it now as it is a repository secret: - name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
publish_dir: ./public |
Alright, I updated the deploy key now. Things to consider - maybe in the next meeting on Tuesday:
|
Thanks! Have to test it out but it sounds perfect. No, main is to limited, at least for dev and main you have to check the docu before deploying it to main. However, dev should be enough as a PR against dev already triggers the workflow so I always use PR against dev and main as trigger and I think that is perfect for this, too. Yes, we should only keep the latest docu, we are nowhere near a first public version and there will be breaking changes all the time ...well I exaggerate but still I don't think we need to keep every version. But we should invest time in a proper release workflow next with proper Git tags etc |
The first deployment attempt failed with |
That should not be the case the deploy key is not created under user settings but repo settings and it is a repository secret so no |
True... any obvious errors I'm making in calling the key? Typos in |
That should not be the case the deploy key is not created under user settings but repo settings and it is a repository secret so no . From the docu: If the user who created the deploy key is removed from the repository, the deploy key will still be active as it isn't tied to the specific user, but rather to the repository. |
I don't think so, according to the doc it should be fairly simple: create the ssh key as public and the secret as private key and that's it...I will have a look later |
I found the problem which is logical if you think about it: you are on your own fork and that does not trigger the REPO secrets, you have to call from a branch in this repo. Here the docu: |
Moved this to #27 |
* Updated dev-dependencies, added first version of Sphinx documentation, including built html documentation. * Added Logo, updated theme, updated GitHub workflow, fixed docstrings in cache and cube. Hosting on ReadTheDocs has to be done by Owner/ CorrelAid (but can be requested and triggered that way). * Updated urllib3 version, but everything <2.0.0 (deprecating `strict`) should be fine... * Updated poetry as recommended in cachecontrol issue report. * Fixed black formatting, fixed make docs (is now ran by poetry). * Fixed linting issue, updated packages, updated make docs. * Updated ReadMe, added developer sphinx documentation, added custom pre-commit hook and changed to hard-coded version in docs, added built documentation to artifacts, #3 * Add deployment workflow, needs Repo updates * Update depencies for Sphinx documentation #10 * Remove redundant docu information #10 Render parts of the README.md in the respective .rst files * Remove unused mdinclude, fix run-test py version, update pre-commit #10 * Fix dependency group for SPhinx workflow #10 * Fix docstring parameter rendering in Sphinx #10 * Fix image rendering by mimicking folder structure #10 * Add comment on warnings related to ext.napoleon #10 * Rename deploy-docs #10 * Fix black format issue in conf.py #10 * Update deploy key, add deploy trigger comment #10 * Update documentation deploy workflow #10 * Switch to matrix.os definition #10 * Fix pull_request target in deploy workflow #10 * Update poetry.lock #10 * Import package version to Sphinx docu #10 * Manually fix black formatting issue #10 * With auto-deploy working, decrease retention days #10 * Update readme and Sphinx header references #10 * Fix deploy to update files on the remote #10
* Updated dev-dependencies, added first version of Sphinx documentation, including built html documentation. * Added Logo, updated theme, updated GitHub workflow, fixed docstrings in cache and cube. Hosting on ReadTheDocs has to be done by Owner/ CorrelAid (but can be requested and triggered that way). * Updated urllib3 version, but everything <2.0.0 (deprecating `strict`) should be fine... * Updated poetry as recommended in cachecontrol issue report. * Fixed black formatting, fixed make docs (is now ran by poetry). * Fixed linting issue, updated packages, updated make docs. * Updated ReadMe, added developer sphinx documentation, added custom pre-commit hook and changed to hard-coded version in docs, added built documentation to artifacts, #3 * Add deployment workflow, needs Repo updates * Update depencies for Sphinx documentation #10 * Remove redundant docu information #10 Render parts of the README.md in the respective .rst files * Remove unused mdinclude, fix run-test py version, update pre-commit #10 * Fix dependency group for SPhinx workflow #10 * Fix docstring parameter rendering in Sphinx #10 * Fix image rendering by mimicking folder structure #10 * Add comment on warnings related to ext.napoleon #10 * Rename deploy-docs #10 * Fix black format issue in conf.py #10 * Update deploy key, add deploy trigger comment #10 * Update documentation deploy workflow #10 * Switch to matrix.os definition #10 * Fix pull_request target in deploy workflow #10 * Update poetry.lock #10 * Import package version to Sphinx docu #10 * Manually fix black formatting issue #10 * With auto-deploy working, decrease retention days #10 * Update readme and Sphinx header references #10 * Fix deploy to update files on the remote #10
* Bump version to next major version #9 * Revert flake8 to ^3.0 for docstrings #9 * add a notebook that shows how to run init_config * Make dev dependencies optional, update lock and README #9 * Update workflow install --with dev, add matrix poetry version #9 * Fix python and poetry version definition #9 * Fix python and poetry version definition #9 * fix lock file * update dev dependencies and add python-dotenv to dev * improve readme * update readme * Feat/8 handle multiple databases and users (#20) * change config module to handle multiple databases * finalize work on config module to handle multiple databases; significantly reduced lines of code by getting rid of the settings.ini * add a new db module that serves as a layer between the user and the config. Can set the current active database and get the settings from the config * simplify config module * refactor code to implement new config; correct tests * fix all remaining tests * fix all text issues * update notebooks according to latest changes in config * drop support for Python 3.9 due to pipe operator for types and set supported versions to 3.10 and 3.11 * fix problem with config dir creation during setup * fix isort * Improve clear_cache output for full wipe, remove unused import * Address all non global-related pylint issues #20 * because of complexity get rid of the current support of custom config dir and always use the default config dir under user home. * fix all tests; get rid of settings.ini and functionality for user to define own config path; pystatis supports only default config path but custom data cache path * fix all tests; get rid of settings.ini and functionality for user to define own config path; pystatis supports only default config path but custom data cache path * refactor config module to work with a ConfigParser global config object instead of overwriting the config variable within the functions using global (bad style according to pylint) * address pylint issues * fix mypy issues * fix pylint issues --------- Co-authored-by: MarcoHuebner <marco_huebner1@gmx.de> * update README to the latest changes of multi database support * Added lists of all available statistics and tables * Feat/10 update and auto deploy sphinx (#27) * Updated dev-dependencies, added first version of Sphinx documentation, including built html documentation. * Added Logo, updated theme, updated GitHub workflow, fixed docstrings in cache and cube. Hosting on ReadTheDocs has to be done by Owner/ CorrelAid (but can be requested and triggered that way). * Updated urllib3 version, but everything <2.0.0 (deprecating `strict`) should be fine... * Updated poetry as recommended in cachecontrol issue report. * Fixed black formatting, fixed make docs (is now ran by poetry). * Fixed linting issue, updated packages, updated make docs. * Updated ReadMe, added developer sphinx documentation, added custom pre-commit hook and changed to hard-coded version in docs, added built documentation to artifacts, #3 * Add deployment workflow, needs Repo updates * Update depencies for Sphinx documentation #10 * Remove redundant docu information #10 Render parts of the README.md in the respective .rst files * Remove unused mdinclude, fix run-test py version, update pre-commit #10 * Fix dependency group for SPhinx workflow #10 * Fix docstring parameter rendering in Sphinx #10 * Fix image rendering by mimicking folder structure #10 * Add comment on warnings related to ext.napoleon #10 * Rename deploy-docs #10 * Fix black format issue in conf.py #10 * Update deploy key, add deploy trigger comment #10 * Update documentation deploy workflow #10 * Switch to matrix.os definition #10 * Fix pull_request target in deploy workflow #10 * Update poetry.lock #10 * Import package version to Sphinx docu #10 * Manually fix black formatting issue #10 * With auto-deploy working, decrease retention days #10 * Update readme and Sphinx header references #10 * Fix deploy to update files on the remote #10 * fix cube functionality: it seems like structure of QEI header part was changed as well as DQA no longer has information about axis so we assume that the order is preserved (#43) * add jupytext and new nb for presentation * Feat/35 implement regex matching (#44) * Implemented regex matching, initial commit * Added credentials check for cubes and removed all references to set_db() * Implemented regex matching, initial commit * Added credentials check for cubes and removed all references to set_db() * fix tests * refactoring Find and Result class to work with new database detection logic; because find does not use names like Table and Cube, use has to specify the database * fix tests --------- Co-authored-by: Michael Aydinbas <michael.aydinbas@gmail.com> Co-authored-by: Michael Aydinbas <michael.aydinbas@new-work.se> * add presentation nb * remove presentation nb for now * Feat/19 improve readability of the table format (#42) * Reformatting the raw data tables for readability * Adding comments * Applied suggested changes and run code formatting * add tests for Table --------- Co-authored-by: Michael Aydinbas <michael.aydinbas@new-work.se> * prepare Table so it can parse data from three different sources * Added description and examples of Find * implement parse logic for prettify zensus tables * fix pylint issues * edits on Find section * fixing overwritten changes * update presentation nb * add genesis parse code for regio, too, for the moment. * Feat/34 visualization examples (#48) * Add 02_Geo_visualization_example.ipynb * changed '-' to 0 instead of nan --> reproduce Simons result * new case study in visualization notebook, integration to presentation notebook * catch NA-values in read_csv and added Auspraegung_Code to table.py to have the unique region identifiers --------- Co-authored-by: jkrause <jkrause123@users.noreply.github.com> * final presentation nb and shape data; omit file check in pre-commit * fixed typo and beautified plots in presentation.ipynb /.py * add a first workaround for the new Zensus zip content type * fix all tests; separate Find and Results classes into own modules * update dependencies * update README * set version to 0.2 * remove Cubes from package for now; we no longer support cubes until they are requested * fix all tests; fix all relevant nb; * fix pylint issues * fix mypy issues * add documentation key * update changelog --------- Co-authored-by: MarcoHuebner <marco_huebner1@gmx.de> Co-authored-by: Pia <45008571+PiaSchroeder@users.noreply.github.com> Co-authored-by: MarcoHuebner <57489799+MarcoHuebner@users.noreply.github.com> Co-authored-by: zosiaboro <50183305+zosiaboro@users.noreply.github.com> Co-authored-by: Zosia Borowska <zofia.anna.borowska@gmail.com> Co-authored-by: jkrause123 <89632018+jkrause123@users.noreply.github.com> Co-authored-by: jkrause <jkrause123@users.noreply.github.com>
Rohversion einer Sphinx Doku, dementsprechend ebenfalls
pyproject.toml
dev-dependencies angepassttbd:
resolves #10