Browse Source

chore: migrate to Poetry

BREAKING CHANGE: Docker support has been removed.
If you were using it, please migrate to [one of the other available options](https://kosmorro.space/cli/download/).
tags/v0.10.10
Jérôme Deuchnord 3 years ago
committed by Jérôme Deuchnord
parent
commit
ca3ac9111e
68 changed files with 838 additions and 682 deletions
  1. +2
    -3
      .github/ISSUE_TEMPLATE/bug_report.yml
  2. +7
    -2
      .github/workflows/appimage.yml
  3. +0
    -26
      .github/workflows/dockerfile.yml
  4. +6
    -7
      .github/workflows/i18n.yml
  5. +28
    -0
      .github/workflows/manpage.yml
  6. +4
    -14
      .github/workflows/tests.yml
  7. +2
    -2
      .gitpod.yml
  8. +1
    -1
      AppImageBuilder.yml
  9. +20
    -32
      CONTRIBUTING.md
  10. +0
    -33
      Dockerfile
  11. +5
    -10
      Makefile
  12. +0
    -22
      Pipfile
  13. +0
    -293
      Pipfile.lock
  14. +5
    -5
      README.md
  15. +0
    -26
      kosmorro
  16. +0
    -0
      kosmorro/__init__.py
  17. +6
    -2
      kosmorro/__main__.py
  18. +0
    -0
      kosmorro/__version__.py
  19. +0
    -0
      kosmorro/assets/moonphases/png/first-quarter.png
  20. +0
    -0
      kosmorro/assets/moonphases/png/full-moon.png
  21. +0
    -0
      kosmorro/assets/moonphases/png/last-quarter.png
  22. +0
    -0
      kosmorro/assets/moonphases/png/new-moon.png
  23. +0
    -0
      kosmorro/assets/moonphases/png/unknown.png
  24. +0
    -0
      kosmorro/assets/moonphases/png/waning-crescent.png
  25. +0
    -0
      kosmorro/assets/moonphases/png/waning-gibbous.png
  26. +0
    -0
      kosmorro/assets/moonphases/png/waxing-crescent.png
  27. +0
    -0
      kosmorro/assets/moonphases/png/waxing-gibbous.png
  28. +0
    -0
      kosmorro/assets/moonphases/svg/first-quarter.svg
  29. +0
    -0
      kosmorro/assets/moonphases/svg/full-moon.svg
  30. +0
    -0
      kosmorro/assets/moonphases/svg/last-quarter.svg
  31. +0
    -0
      kosmorro/assets/moonphases/svg/new-moon.svg
  32. +0
    -0
      kosmorro/assets/moonphases/svg/unknown.svg
  33. +0
    -0
      kosmorro/assets/moonphases/svg/waning-crescent.svg
  34. +0
    -0
      kosmorro/assets/moonphases/svg/waning-gibbous.svg
  35. +0
    -0
      kosmorro/assets/moonphases/svg/waxing-crescent.svg
  36. +0
    -0
      kosmorro/assets/moonphases/svg/waxing-gibbous.svg
  37. +0
    -0
      kosmorro/assets/pdf/kosmorro.sty
  38. +0
    -0
      kosmorro/assets/pdf/template.tex
  39. +0
    -0
      kosmorro/assets/png/kosmorro-icon-white.png
  40. +0
    -0
      kosmorro/assets/png/kosmorro-icon.png
  41. +0
    -0
      kosmorro/assets/png/kosmorro-logo-white.png
  42. +0
    -0
      kosmorro/assets/png/kosmorro-logo.png
  43. +0
    -0
      kosmorro/assets/svg/kosmorro-icon-white.svg
  44. +0
    -0
      kosmorro/assets/svg/kosmorro-icon.svg
  45. +0
    -0
      kosmorro/assets/svg/kosmorro-logo-white.svg
  46. +0
    -0
      kosmorro/assets/svg/kosmorro-logo.svg
  47. +1
    -1
      kosmorro/date.py
  48. +0
    -0
      kosmorro/debug.py
  49. +0
    -0
      kosmorro/dumper.py
  50. +0
    -0
      kosmorro/environment.py
  51. +1
    -1
      kosmorro/exceptions.py
  52. +0
    -0
      kosmorro/i18n/__init__.py
  53. +0
    -0
      kosmorro/i18n/strings.py
  54. +0
    -0
      kosmorro/i18n/utils.py
  55. +0
    -0
      kosmorro/locales/de/LC_MESSAGES/messages.po
  56. +0
    -0
      kosmorro/locales/en_XA/LC_MESSAGES/messages.po
  57. +0
    -0
      kosmorro/locales/es/LC_MESSAGES/messages.po
  58. +0
    -0
      kosmorro/locales/fr/LC_MESSAGES/messages.po
  59. +138
    -138
      kosmorro/locales/messages.pot
  60. +0
    -0
      kosmorro/locales/nb_NO/LC_MESSAGES/messages.po
  61. +0
    -0
      kosmorro/locales/nl/LC_MESSAGES/messages.po
  62. +0
    -0
      kosmorro/locales/ru/LC_MESSAGES/messages.po
  63. +0
    -0
      kosmorro/utils.py
  64. +576
    -0
      poetry.lock
  65. +32
    -0
      pyproject.toml
  66. +3
    -3
      setup.cfg
  67. +0
    -60
      setup.py
  68. +1
    -1
      tests/utils.py

+ 2
- 3
.github/ISSUE_TEMPLATE/bug_report.yml View File

@@ -88,10 +88,9 @@ body:
- PyPI - PyPI
- Arch User Repository (AUR) - Arch User Repository (AUR)
- FreshPorts - FreshPorts
- Docker - I used the AppImage
- I have compiled the package from source - I have compiled the package from source
- I have run Kosmorro with Pipenv - Other (explain in the description)
- other


- type: textarea - type: textarea
id: description id: description


+ 7
- 2
.github/workflows/appimage.yml View File

@@ -19,8 +19,8 @@ jobs:
sudo gem install ronn sudo gem install ronn
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool
sudo chmod +x /usr/local/bin/appimagetool sudo chmod +x /usr/local/bin/appimagetool
pip install -U pip pipenv Babel wheel appimage-builder pip install -U pip poetry appimage-builder
pipenv install --dev poetry install


- name: Build wheel - name: Build wheel
run: | run: |
@@ -41,3 +41,8 @@ jobs:
with: with:
name: kosmorro.AppImage.zsync name: kosmorro.AppImage.zsync
path: dist/kosmorro-latest-x86_64.AppImage.zsync path: dist/kosmorro-latest-x86_64.AppImage.zsync

- name: Run basic command
run: |
chmod +x dist/kosmorro-latest-x86_64.AppImage
./dist/kosmorro-latest-x86_64.AppImage

+ 0
- 26
.github/workflows/dockerfile.yml View File

@@ -1,26 +0,0 @@
name: Docker image

on:
push:
branches: [master, features]
pull_request:
branches: [master, features]

jobs:
build-image:
runs-on: ubuntu-latest

name: Test building Docker image
steps:
- uses: actions/checkout@v1

- name: Set up Docker
uses: docker-practice/actions-setup-docker@v1

- name: Create image
run: |
docker build -t kosmorro .

- name: Execute image
run: |
docker run kosmorro kosmorro

+ 6
- 7
.github/workflows/i18n.yml View File

@@ -18,21 +18,20 @@ jobs:
python-version: '3.x' python-version: '3.x'
- name: Install dependencies - name: Install dependencies
run: | run: |
pip install --upgrade pip pipenv pip install --upgrade pip poetry
pipenv sync -d poetry install
- name: Check i18n - name: Check i18n
run: | run: |
pipenv run pybabel extract --output=/tmp/kosmorro-messages.pot _kosmorro poetry run pybabel extract --output=/tmp/kosmorro-messages.pot kosmorro
echo echo

diff=$(diff kosmorro/locales/messages.pot /tmp/kosmorro-messages.pot | grep '^>')
diff=$(diff _kosmorro/locales/messages.pot /tmp/kosmorro-messages.pot | grep '^>')
n=$(echo "$diff" | grep -v '> "POT-Creation-Date: ' | wc -l) n=$(echo "$diff" | grep -v '> "POT-Creation-Date: ' | wc -l)


if [ "$(echo "$diff" | grep -E '^"Generated-By: Babel' | wc -l)" -eq "1" ]; then if [ "$(echo "$diff" | grep -E '^"Generated-By: Babel' | wc -l)" -eq "1" ]; then
echo "❌ You dependencies may be out of date!" echo "❌ Your dependencies may be out of date!"
echo " Please run the following command to fix this:" echo " Please run the following command to fix this:"
echo echo
echo " pipenv sync --dev" echo " poetry install"
echo echo
echo " Then update the messages file:" echo " Then update the messages file:"
echo echo


+ 28
- 0
.github/workflows/manpage.yml View File

@@ -0,0 +1,28 @@
name: Man pages

on:
push:
branches: [master, features]
pull_request:
branches: [master, features]

jobs:
e2e-tests:
runs-on: ubuntu-latest
name: Check

steps:
- uses: actions/checkout@v2

- name: Compile man pages
run: |
sudo gem install ronn
make manpage

- name: manpage (section 1)
run: |
man -P $(which cat) manpage/kosmorro.1

- name: manpage (section 7)
run: |
man -P $(which cat) manpage/kosmorro.7

+ 4
- 14
.github/workflows/tests.yml View File

@@ -27,19 +27,17 @@ jobs:


name: Python ${{ matrix.python-version }} on ${{ matrix.os }} name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v2


- name: Set up Python - name: Set up Python
uses: actions/setup-python@v1 uses: actions/setup-python@v2
with: with:
python-version: ${{ matrix.python-version }} python-version: ${{ matrix.python-version }}


- name: Prepare tests - name: Prepare tests
run: | run: |
sudo gem install ronn pip install -U pip poetry
pip install -U pip pipenv poetry install
pipenv sync --dev
make manpage


- name: E2E tests - name: E2E tests
run: | run: |
@@ -55,11 +53,3 @@ jobs:
TEXLIVE_INSTALLED: 1 TEXLIVE_INSTALLED: 1
run: | run: |
make tests make tests

- name: manpage (section 1)
run: |
man -P $(which cat) manpage/kosmorro.1

- name: manpage (section 7)
run: |
man -P $(which cat) manpage/kosmorro.7

+ 2
- 2
.gitpod.yml View File

@@ -10,5 +10,5 @@ vscode:


tasks: tasks:
- before: sudo apt update && sudo apt install -y texlive texlive-latex-extra - before: sudo apt update && sudo apt install -y texlive texlive-latex-extra
- before: pip install -U pip pipenv - before: pip install -U pip poetry
init: pipenv sync --dev --pre init: poetry install

+ 1
- 1
AppImageBuilder.yml View File

@@ -3,7 +3,7 @@ version: 1


script: | script: |
mkdir -p build/AppDir build/AppDir/usr/share/icons/hicolor/scalable/apps mkdir -p build/AppDir build/AppDir/usr/share/icons/hicolor/scalable/apps
cp _kosmorro/assets/svg/kosmorro-icon.svg build/AppDir/usr/share/icons/hicolor/scalable/apps/kosmorro.svg cp kosmorro/assets/svg/kosmorro-icon.svg build/AppDir/usr/share/icons/hicolor/scalable/apps/kosmorro.svg
pip3 install --isolated --root="./build/AppDir" ./dist/kosmorro-*.whl pip3 install --isolated --root="./build/AppDir" ./dist/kosmorro-*.whl


AppDir: AppDir:


+ 20
- 32
CONTRIBUTING.md View File

@@ -23,7 +23,7 @@ If you speak another language than English, another nice way to enhance Kosmorro


[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/Kosmorro/kosmorro) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/Kosmorro/kosmorro)


First of all, if you are fixing an opened issue, check that nobody is already working on it — if someone seems to be but their Pull Request seems stuck, please ask them first if you can continue the development. If you retake the code they produced, **don't change the author of the commits**. First, if you are fixing an opened issue, check that nobody is already working on it — if someone seems to be but their Pull Request seems stuck, please ask them first if you can continue the development. If you retake the code they produced, **don't change the author of the commits**.


Before writing the code, first create a fork of the repository and clone it. You may also want to add the original repository (`Kosmorro/kosmorro`), so you can update your fork with the last upstream commits. Before writing the code, first create a fork of the repository and clone it. You may also want to add the original repository (`Kosmorro/kosmorro`), so you can update your fork with the last upstream commits.


@@ -50,7 +50,7 @@ When you add a new string that will be displayed to the end user, please pass it
print('Note: All the hours are given in UTC.') print('Note: All the hours are given in UTC.')


# Do: # Do:
from kosmorrolib.i18n import _ from kosmorro.i18n import _
print(_('Note: All the hours are given in UTC.')) print(_('Note: All the hours are given in UTC.'))
``` ```


@@ -58,45 +58,37 @@ This will allow Python's internationalization tool to translate the string in an


Once you have done your work, please remember to tell [Babel](http://babel.pocoo.org) to extract the new strings: Once you have done your work, please remember to tell [Babel](http://babel.pocoo.org) to extract the new strings:


```console ```bash
$ make messages make messages
``` ```


> If the `setup.py` script tells you that the `extract_messages` command does not exist, then run `pipenv sync` to ensure all the dev dependencies are installed and try again.

Note that if you forget to update the messages file, the CI will fail. Note that if you forget to update the messages file, the CI will fail.


### Matching the coding standards ### Matching the coding standards


Kosmorro's source code follows the major coding standards of Python (PEPs). Before marking your Pull Request as ready for review, don't forget to check that the code respects the coding standards with PyLint (it is run on the CI, but feel free to run it on your local machine too). Your PR must have a global note of 10/10 to be elligible to merge. Kosmorro's source code follows the major coding standards of Python (PEPs).

Before marking your Pull Request as ready for review, don't forget to check that the code respects the coding standards with Black:
### Testing the code

There are two kinds of tests on this project: **unit tests** and **end-to-end tests** (sometimes abbreviated to _E2E tests_).

#### Unit tests

[Unit tests](https://en.wikipedia.org/wiki/Unit_testing) check that every little piece of code (any _unit_) does exactly what it is supposed to do. They have several advantages, like proving that new things in the codebase works exactly as they should, and making sure that future changes done later won't break them.

Kosmorro's unit tests use Python's official `unittest` module. They live in the `/test` folder of the repository. Whenever you write a new feature or a bug fix, please write the unit tests that will make sure it works.
You can also run them by invoking the following command:


```shell ```bash
make test make black
``` ```


Note: there are currently some memory leaks in the unit tests, making the result quite difficult to read. I am working to fix this. ### Testing the code
If you have troubles reading them, feel free to ask.


#### End-to-end tests The tests are located in the `/tests` folder.
Their principle is pretty simple:


If unit tests are really good at checking that every individual parts of code work well, they fail at checking that so does the _whole_ program as a finished product. That is the job of end-to-end tests. 1. First, we run a Kosmorro command as we would in command line application. We use the [Aurornis](https://pypi.org/project/aurornis/) package to do this.
2. Then, we test the return of the command against what we expected. We use [PyTest](https://pypi.org/project/pytest/) to do this.


The goal here is to make sure that if you install Kosmorro from scratch, it will work without any problem. If a mandatory dependency has not been installed, or if something goes wrong in the main program (which is not possible to unit test), the E2E tests will fail. To run the tests, invoke the following command:


Kosmorro's 2E2 tests are a Bash script living in the `/.scripts/tests-e2e.sh` file. You should only add tests here if you add new ways to interact with Kosmorro itself (e.g. adding a new argument in the command line). ```bash
make tests


Fore security purpose, it is not recommended running E2E tests locally, because some tests need the root privilege to pass (e.g. installing optional dependencies). They are run on the CI. # Or, if you have TeXLive installed on your machine (Linux only):
make TEXLIVE_INSTALLED=1 tests
```


### Commiting ### Commiting


@@ -112,11 +104,7 @@ Once your PR is ready to review, please squash your commits so it contains only


> To ensure your commits follow this convention, you can use [glint](https://github.com/brigand/glint). > To ensure your commits follow this convention, you can use [glint](https://github.com/brigand/glint).


The commit messages are then used to generate the changelog using [`conventional-changelog`](https://github.com/conventional-changelog/conventional-changelog): The commit messages are then used to generate the changelog using [`conventional-changelog`](https://github.com/conventional-changelog/conventional-changelog).

```bash
conventional-changelog -p angular -i CHANGELOG.md -s
```


## Licensing and Copyright Attribution ## Licensing and Copyright Attribution




+ 0
- 33
Dockerfile View File

@@ -1,33 +0,0 @@
FROM python:3.9-slim

RUN useradd --create-home --shell /bin/bash kosmorro

WORKDIR /home/kosmorro

ENV PATH="/home/kosmorro:${PATH}"

# Prepare environment
RUN python -m pip install --upgrade pip
RUN pip install pipenv
COPY Pipfile.lock .
RUN pipenv sync && pipenv run pip freeze > requirements.txt

# Add files
RUN pip install -r requirements.txt
COPY _kosmorro/ _kosmorro/
COPY kosmorro .

# Compile the translations
COPY setup.py setup.py
COPY setup.cfg setup.cfg
COPY README.md README.md
RUN python setup.py compile_catalog

# Clean the image
RUN rm setup.py setup.cfg README.md && \
rm _kosmorro/locales/messages.pot _kosmorro/locales/*/LC_MESSAGES/messages.po && \
pip uninstall --yes pipenv

USER kosmorro

CMD ["bash"]

+ 5
- 10
Makefile View File

@@ -1,18 +1,13 @@
black: black:
pipenv run black kosmorro _kosmorro tests setup.py poetry run black kosmorro tests setup.py


.PHONY: tests .PHONY: tests
tests: tests:
@if [ "$${TEXLIVE_INSTALLED}" == "" ]; then \ LANG=C python3 -m poetry run pytest tests/*.py
echo "If you are running the tests locally and TeXLive is installed on your machine, you will need to set the TEXLIVE_INSTALLED environment variable."; \
echo; \
fi

LANG=C pipenv run python3 -m pytest tests/*.py


.PHONY: build .PHONY: build
build: manpage build: manpage
python3 setup.py sdist bdist_wheel poetry build


.PHONY: manpage .PHONY: manpage
manpage: manpage:
@@ -20,10 +15,10 @@ manpage:
ronn --roff manpage/kosmorro.7.md ronn --roff manpage/kosmorro.7.md


messages: messages:
pipenv run pybabel extract --output=_kosmorro/locales/messages.pot _kosmorro poetry run pybabel extract --output=kosmorro/locales/messages.pot kosmorro


i18n: i18n:
pipenv run pybabel compile --directory=_kosmorro/locales poetry run pybabel compile --directory=kosmorro/locales


changelog: changelog:
conventional-changelog -p angular -i CHANGELOG.md -s conventional-changelog -p angular -i CHANGELOG.md -s


+ 0
- 22
Pipfile View File

@@ -1,22 +0,0 @@
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]
black = "*"
pytest = "*"
aurornis = "*"

[packages]
tabulate = "*"
termcolor = "*"
kosmorrolib = ">=1.0.0,<2.0.0"
python-dateutil = "*"
babel = ">=2.9.0,<3.0.0"

[requires]
python_version = "3"

[pipenv]
allow_prereleases = true

+ 0
- 293
Pipfile.lock View File

@@ -1,293 +0,0 @@
{
"_meta": {
"hash": {
"sha256": "7c87215e821ad4c88dadc31960030f52957e2eaa41d451bfa3a53feb91b8d856"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3"
},
"sources": [
{
"name": "pypi",
"url": "https://pypi.org/simple",
"verify_ssl": true
}
]
},
"default": {
"babel": {
"hashes": [
"sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9",
"sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0"
],
"index": "pypi",
"version": "==2.9.1"
},
"certifi": {
"hashes": [
"sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872",
"sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"
],
"version": "==2021.10.8"
},
"jplephem": {
"hashes": [
"sha256:e1c6e5565c4d00485f1063241b4d1eff044585c22b8e97fad0ff2f6efb8aaa27"
],
"version": "==2.17"
},
"kosmorrolib": {
"hashes": [
"sha256:8c77f40b346d183147cb3e927b3ea5c7d4d7067ce7e49edb73821566f74d5e51",
"sha256:9ffbbaa8666c1222bf8a25d543afa72a0a80249017d342a6667bcae8657effc0"
],
"index": "pypi",
"version": "==1.0.6"
},
"numpy": {
"hashes": [
"sha256:07a8c89a04997625236c5ecb7afe35a02af3896c8aa01890a849913a2309c676",
"sha256:08d9b008d0156c70dc392bb3ab3abb6e7a711383c3247b410b39962263576cd4",
"sha256:201b4d0552831f7250a08d3b38de0d989d6f6e4658b709a02a73c524ccc6ffce",
"sha256:2c10a93606e0b4b95c9b04b77dc349b398fdfbda382d2a39ba5a822f669a0123",
"sha256:3ca688e1b9b95d80250bca34b11a05e389b1420d00e87a0d12dc45f131f704a1",
"sha256:48a3aecd3b997bf452a2dedb11f4e79bc5bfd21a1d4cc760e703c31d57c84b3e",
"sha256:568dfd16224abddafb1cbcce2ff14f522abe037268514dd7e42c6776a1c3f8e5",
"sha256:5bfb1bb598e8229c2d5d48db1860bcf4311337864ea3efdbe1171fb0c5da515d",
"sha256:639b54cdf6aa4f82fe37ebf70401bbb74b8508fddcf4797f9fe59615b8c5813a",
"sha256:8251ed96f38b47b4295b1ae51631de7ffa8260b5b087808ef09a39a9d66c97ab",
"sha256:92bfa69cfbdf7dfc3040978ad09a48091143cffb778ec3b03fa170c494118d75",
"sha256:97098b95aa4e418529099c26558eeb8486e66bd1e53a6b606d684d0c3616b168",
"sha256:a3bae1a2ed00e90b3ba5f7bd0a7c7999b55d609e0c54ceb2b076a25e345fa9f4",
"sha256:c34ea7e9d13a70bf2ab64a2532fe149a9aced424cd05a2c4ba662fd989e3e45f",
"sha256:dbc7601a3b7472d559dc7b933b18b4b66f9aa7452c120e87dfb33d02008c8a18",
"sha256:e7927a589df200c5e23c57970bafbd0cd322459aa7b1ff73b7c2e84d6e3eae62",
"sha256:f8c1f39caad2c896bc0018f699882b345b2a63708008be29b1f355ebf6f933fe",
"sha256:f950f8845b480cffe522913d35567e29dd381b0dc7e4ce6a4a9f9156417d2430",
"sha256:fade0d4f4d292b6f39951b6836d7a3c7ef5b2347f3c420cd9820a1d90d794802",
"sha256:fdf3c08bce27132395d3c3ba1503cac12e17282358cb4bddc25cc46b0aca07aa"
],
"markers": "python_version >= '3.8'",
"version": "==1.22.3"
},
"python-dateutil": {
"hashes": [
"sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86",
"sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"
],
"index": "pypi",
"version": "==2.8.2"
},
"pytz": {
"hashes": [
"sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c",
"sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"
],
"version": "==2021.3"
},
"sgp4": {
"hashes": [
"sha256:05f22b4fd91861ee2e0e03a528c1aef11a8b263a60ab5f723d32cdb65dac3eaa",
"sha256:06586caf071e3427bc4e5a5c84a806045532040dc2c35ca0ff12f34cab2ecb5c",
"sha256:1af727dfe02ef32babd124644e96b8cc109b22142efb44e37d0e3aaf4c38a1ab",
"sha256:1d3b5abc07266203f4b453e7c1ca8403ef2d7b8d1779c14c9a4177e4b1558ba5",
"sha256:24477da85936b864fd765911f808a4d113c81189c2a0ecd5992bcdf9aecbf5ef",
"sha256:2a89fc1debacfa10cf55ae1d40472037a57687b1ae3b66e7196e5af53fb96a56",
"sha256:2b449e6cab15748608c6083f86b0059d26093f76fa227010df09d8f0954b3bbd",
"sha256:3e3eb29c308d30d010316832606af184d243d5aab8ccc5d589f3cb85d74471f7",
"sha256:43c2c6d464144bb80987b2e66f3992add58c65e095abe2b9d567650fdb877a9d",
"sha256:4d5eb2aff4f645f5020ac869ec453dcd807836b3eb8b459d569eda40c358cd76",
"sha256:642bae76c6e55b72feda3c5ca3721e837f2702816a120805349b06e40f85faea",
"sha256:67f99f534fdc5650d8efe516e77dd9b43e4cb8ab9b38f2b66484085c0ff75077",
"sha256:6c906973dc2966cba8065f359c3eaa18505280be8f625b54ebb98f5ddeb8d205",
"sha256:7d848698ae2bf5bb9ea2082640b0417175a6b2e6e8d580114ebe04265cd1bfb4",
"sha256:80f9b2f1c2ac53c7b8cbf1a08e5a39a56c1b7c18d3e0de922078758a784b0b20",
"sha256:876b82d41a859c9ff65d3bdb7f6a3cecfc63bea529b4dc751b06eefbd6c3f1e0",
"sha256:8c2f4f99ab360a93768bf88ad6a9fdf83edfa6292e0a0ac8924c85fde11b2055",
"sha256:9fde328872f484eb644dabe32122ba617570ff61b548b7200a9d63629ac3097c",
"sha256:b2169cd536355fc67e3870acea34c4fc22b2ccecab2c0bf45a01edfe646fe3d0",
"sha256:cf4d5ac32b5e84c7b420109a09ea3c3741844fa92776f79d1c852cc67e2c1364",
"sha256:d42a3dcdfd394c5059b99bbf8b35311e03e87d21fbfb6ba2d5c5d2dfad15d4d7",
"sha256:dbfffe1ff2c223804e2ebdeb568baad46f40342943c4a74169fd75dc5dddda57",
"sha256:dfc5214b65ad8229c499f0da3f5042a18239f12f4318e90d892a79dcbf27282f",
"sha256:e73680b3b7b8b977766ae91eadd92988a0c3e36248dcac5d8263a957bec34a04",
"sha256:e8ecc01fdffe81f11ca94bb255024379e62c92f73e2baec2bdf5a3c3108221ff",
"sha256:ea37423d4317ec5351a4e3b6a3947a6053978e5290549d77ba375459527f7ccb",
"sha256:ee329571c1a25ce4f1e2b01d6f923791d16c5a7a3a75219317073bc50a7d25fe",
"sha256:ee3688ae409a201107927b24be10db2a61efdd5a919737b4900c57ee8b3a22d6",
"sha256:f5d2830f2896cecc4af0729cd328994ae823f277f481d4fc992383eb79f3742a"
],
"version": "==2.20"
},
"six": {
"hashes": [
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==1.16.0"
},
"skyfield": {
"hashes": [
"sha256:3447fd3a9a9dabc2080e6a4efb56d9883decf261ad78e6c9b3f187c4fc761ace"
],
"version": "==1.42"
},
"skyfield-data": {
"hashes": [
"sha256:128d407e43a04be66c44b03914f9147b5e65b96078db776e6a4f5538ab0b74bf",
"sha256:bd81bf9032d4833a766f4127e868d62674083ca2ccaea07e6d025e132c9c574e"
],
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5' and python_version < '4'",
"version": "==4.0.0"
},
"tabulate": {
"hashes": [
"sha256:d7c013fe7abbc5e491394e10fa845f8f32fe54f8dc60c6622c6cf482d25d47e4",
"sha256:eb1d13f25760052e8931f2ef80aaf6045a6cceb47514db8beab24cded16f13a7"
],
"index": "pypi",
"version": "==0.8.9"
},
"termcolor": {
"hashes": [
"sha256:1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"
],
"index": "pypi",
"version": "==1.1.0"
}
},
"develop": {
"attrs": {
"hashes": [
"sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4",
"sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==21.4.0"
},
"aurornis": {
"hashes": [
"sha256:660b57e9d1701d88fb7cc4af3118c927e9e001d2ab39cb145695eb8470f4642a",
"sha256:bc68845be5cdf2d69d26c677214f7435365967b4a65dc3772ab05353b2136d95"
],
"index": "pypi",
"version": "==1.2.0"
},
"black": {
"hashes": [
"sha256:07e5c049442d7ca1a2fc273c79d1aecbbf1bc858f62e8184abe1ad175c4f7cc2",
"sha256:0e21e1f1efa65a50e3960edd068b6ae6d64ad6235bd8bfea116a03b21836af71",
"sha256:1297c63b9e1b96a3d0da2d85d11cd9bf8664251fd69ddac068b98dc4f34f73b6",
"sha256:228b5ae2c8e3d6227e4bde5920d2fc66cc3400fde7bcc74f480cb07ef0b570d5",
"sha256:2d6f331c02f0f40aa51a22e479c8209d37fcd520c77721c034517d44eecf5912",
"sha256:2ff96450d3ad9ea499fc4c60e425a1439c2120cbbc1ab959ff20f7c76ec7e866",
"sha256:3524739d76b6b3ed1132422bf9d82123cd1705086723bc3e235ca39fd21c667d",
"sha256:35944b7100af4a985abfcaa860b06af15590deb1f392f06c8683b4381e8eeaf0",
"sha256:373922fc66676133ddc3e754e4509196a8c392fec3f5ca4486673e685a421321",
"sha256:5fa1db02410b1924b6749c245ab38d30621564e658297484952f3d8a39fce7e8",
"sha256:6f2f01381f91c1efb1451998bd65a129b3ed6f64f79663a55fe0e9b74a5f81fd",
"sha256:742ce9af3086e5bd07e58c8feb09dbb2b047b7f566eb5f5bc63fd455814979f3",
"sha256:7835fee5238fc0a0baf6c9268fb816b5f5cd9b8793423a75e8cd663c48d073ba",
"sha256:8871fcb4b447206904932b54b567923e5be802b9b19b744fdff092bd2f3118d0",
"sha256:a7c0192d35635f6fc1174be575cb7915e92e5dd629ee79fdaf0dcfa41a80afb5",
"sha256:b1a5ed73ab4c482208d20434f700d514f66ffe2840f63a6252ecc43a9bc77e8a",
"sha256:c8226f50b8c34a14608b848dc23a46e5d08397d009446353dad45e04af0c8e28",
"sha256:ccad888050f5393f0d6029deea2a33e5ae371fd182a697313bdbd835d3edaf9c",
"sha256:dae63f2dbf82882fa3b2a3c49c32bffe144970a573cd68d247af6560fc493ae1",
"sha256:e2f69158a7d120fd641d1fa9a921d898e20d52e44a74a6fbbcc570a62a6bc8ab",
"sha256:efbadd9b52c060a8fc3b9658744091cb33c31f830b3f074422ed27bad2b18e8f",
"sha256:f5660feab44c2e3cb24b2419b998846cbb01c23c7fe645fee45087efa3da2d61",
"sha256:fdb8754b453fb15fad3f72cd9cad3e16776f0964d67cf30ebcbf10327a3777a3"
],
"index": "pypi",
"version": "==22.1.0"
},
"click": {
"hashes": [
"sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1",
"sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb"
],
"markers": "python_version >= '3.6'",
"version": "==8.0.4"
},
"iniconfig": {
"hashes": [
"sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3",
"sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"
],
"version": "==1.1.1"
},
"mypy-extensions": {
"hashes": [
"sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d",
"sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"
],
"version": "==0.4.3"
},
"packaging": {
"hashes": [
"sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb",
"sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"
],
"markers": "python_version >= '3.6'",
"version": "==21.3"
},
"pathspec": {
"hashes": [
"sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a",
"sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"
],
"version": "==0.9.0"
},
"platformdirs": {
"hashes": [
"sha256:7535e70dfa32e84d4b34996ea99c5e432fa29a708d0f4e394bbcb2a8faa4f16d",
"sha256:bcae7cab893c2d310a711b70b24efb93334febe65f8de776ee320b517471e227"
],
"markers": "python_version >= '3.7'",
"version": "==2.5.1"
},
"pluggy": {
"hashes": [
"sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159",
"sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"
],
"markers": "python_version >= '3.6'",
"version": "==1.0.0"
},
"py": {
"hashes": [
"sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719",
"sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==1.11.0"
},
"pyparsing": {
"hashes": [
"sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea",
"sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484"
],
"markers": "python_version >= '3.6'",
"version": "==3.0.7"
},
"pytest": {
"hashes": [
"sha256:841132caef6b1ad17a9afde46dc4f6cfa59a05f9555aae5151f73bdf2820ca63",
"sha256:92f723789a8fdd7180b6b06483874feca4c48a5c76968e03bb3e7f806a1869ea"
],
"index": "pypi",
"version": "==7.1.1"
},
"tomli": {
"hashes": [
"sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
"sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"
],
"markers": "python_version >= '3.7'",
"version": "==2.0.1"
}
}
}

+ 5
- 5
README.md View File

@@ -1,5 +1,5 @@
# ![Kosmorro](https://raw.githubusercontent.com/Kosmorro/logos/main/png/kosmorro-logo-grey.png) # ![Kosmorro](https://raw.githubusercontent.com/Kosmorro/logos/main/png/kosmorro-logo-grey.png)
[![Coverage Status](https://coveralls.io/repos/github/Kosmorro/kosmorro/badge.svg?branch=master)](https://coveralls.io/github/Kosmorro/kosmorro?branch=master) [![Version on PyPI](https://img.shields.io/pypi/v/kosmorro)](https://pypi.org/project/kosmorro) [![Packaging status](https://repology.org/badge/tiny-repos/kosmorro.svg)](https://repology.org/project/kosmorro/versions) [![Docker Pulls](https://img.shields.io/docker/pulls/kosmorro/kosmorro)](https://hub.docker.com/r/kosmorro/kosmorro) [![Help translating Kosmorro!](https://hosted.weblate.org/widgets/kosmorro/-/cli/svg-badge.svg)](https://hosted.weblate.org/engage/kosmorro/) [![Coverage Status](https://coveralls.io/repos/github/Kosmorro/kosmorro/badge.svg?branch=master)](https://coveralls.io/github/Kosmorro/kosmorro?branch=master) [![Version on PyPI](https://img.shields.io/pypi/v/kosmorro)](https://pypi.org/project/kosmorro) [![Packaging status](https://repology.org/badge/tiny-repos/kosmorro.svg)](https://repology.org/project/kosmorro/versions) [![Help translating Kosmorro!](https://hosted.weblate.org/widgets/kosmorro/-/cli/svg-badge.svg)](https://hosted.weblate.org/engage/kosmorro/)


A program that calculates your astronomical ephemerides! A program that calculates your astronomical ephemerides!


@@ -17,12 +17,12 @@ Before you run Kosmorro in your development environment, check you have installe


- Python ≥ 3.7.0 (needed run Kosmorro) - Python ≥ 3.7.0 (needed run Kosmorro)
- PIP3 (needed for package management, usually installed among with Python 3) - PIP3 (needed for package management, usually installed among with Python 3)
- [Pipenv](https://pypi.org/project/pipenv/) (needed to manage the virtual environment) - [Poetry](https://python-poetry.org/) (needed to manage the virtual environment)


Clone this repository and run `pipenv sync` to install all the dependencies. Clone this repository and run `poetry install` to install all the dependencies.
Then, run Kosmorro by invoking `pipenv run python kosmorro`. Then, run Kosmorro by invoking `poetry run python kosmorro`.


For comfort, you may want to invoke `pipenv shell` first and then just `python kosmoro`. For comfort, you may want to invoke `poetry shell` first and then just `python kosmoro`.


## Using Kosmorro ## Using Kosmorro




+ 0
- 26
kosmorro View File

@@ -1,26 +0,0 @@
#!/usr/bin/env python3

# Kosmorro - Compute The Next Ephemerides
# Copyright (C) 2019 Jérôme Deuchnord <jerome@deuchnord.fr>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.

import sys
from _kosmorro.main import main

if __name__ == "__main__":
try:
sys.exit(main())
except KeyboardInterrupt:
sys.exit(1)

_kosmorro/__init__.py → kosmorro/__init__.py View File


_kosmorro/main.py → kosmorro/__main__.py View File

@@ -30,10 +30,10 @@ from .date import parse_date
from .utils import colored, set_colors_activated from .utils import colored, set_colors_activated
from .__version__ import __version__ as kosmorro_version from .__version__ import __version__ as kosmorro_version
from .exceptions import UnavailableFeatureError, OutOfRangeDateError as DateRangeError from .exceptions import UnavailableFeatureError, OutOfRangeDateError as DateRangeError
from _kosmorro.i18n.utils import _, SHORT_DATE_FORMAT from kosmorro.i18n.utils import _




def main(): def run():
env_vars = environment.get_env_vars() env_vars = environment.get_env_vars()
output_formats = get_dumpers() output_formats = get_dumpers()
args = get_args(list(output_formats.keys())) args = get_args(list(output_formats.keys()))
@@ -312,3 +312,7 @@ def get_args(output_formats: [str]):
) )


return parser.parse_args() return parser.parse_args()


def main():
sys.exit(run())

_kosmorro/__version__.py → kosmorro/__version__.py View File


_kosmorro/assets/moonphases/png/first-quarter.png → kosmorro/assets/moonphases/png/first-quarter.png View File


_kosmorro/assets/moonphases/png/full-moon.png → kosmorro/assets/moonphases/png/full-moon.png View File


_kosmorro/assets/moonphases/png/last-quarter.png → kosmorro/assets/moonphases/png/last-quarter.png View File


_kosmorro/assets/moonphases/png/new-moon.png → kosmorro/assets/moonphases/png/new-moon.png View File


_kosmorro/assets/moonphases/png/unknown.png → kosmorro/assets/moonphases/png/unknown.png View File


_kosmorro/assets/moonphases/png/waning-crescent.png → kosmorro/assets/moonphases/png/waning-crescent.png View File


_kosmorro/assets/moonphases/png/waning-gibbous.png → kosmorro/assets/moonphases/png/waning-gibbous.png View File


_kosmorro/assets/moonphases/png/waxing-crescent.png → kosmorro/assets/moonphases/png/waxing-crescent.png View File


_kosmorro/assets/moonphases/png/waxing-gibbous.png → kosmorro/assets/moonphases/png/waxing-gibbous.png View File


_kosmorro/assets/moonphases/svg/first-quarter.svg → kosmorro/assets/moonphases/svg/first-quarter.svg View File


_kosmorro/assets/moonphases/svg/full-moon.svg → kosmorro/assets/moonphases/svg/full-moon.svg View File


_kosmorro/assets/moonphases/svg/last-quarter.svg → kosmorro/assets/moonphases/svg/last-quarter.svg View File


_kosmorro/assets/moonphases/svg/new-moon.svg → kosmorro/assets/moonphases/svg/new-moon.svg View File


_kosmorro/assets/moonphases/svg/unknown.svg → kosmorro/assets/moonphases/svg/unknown.svg View File


_kosmorro/assets/moonphases/svg/waning-crescent.svg → kosmorro/assets/moonphases/svg/waning-crescent.svg View File


_kosmorro/assets/moonphases/svg/waning-gibbous.svg → kosmorro/assets/moonphases/svg/waning-gibbous.svg View File


_kosmorro/assets/moonphases/svg/waxing-crescent.svg → kosmorro/assets/moonphases/svg/waxing-crescent.svg View File


_kosmorro/assets/moonphases/svg/waxing-gibbous.svg → kosmorro/assets/moonphases/svg/waxing-gibbous.svg View File


_kosmorro/assets/pdf/kosmorro.sty → kosmorro/assets/pdf/kosmorro.sty View File


_kosmorro/assets/pdf/template.tex → kosmorro/assets/pdf/template.tex View File


_kosmorro/assets/png/kosmorro-icon-white.png → kosmorro/assets/png/kosmorro-icon-white.png View File


_kosmorro/assets/png/kosmorro-icon.png → kosmorro/assets/png/kosmorro-icon.png View File


_kosmorro/assets/png/kosmorro-logo-white.png → kosmorro/assets/png/kosmorro-logo-white.png View File


_kosmorro/assets/png/kosmorro-logo.png → kosmorro/assets/png/kosmorro-logo.png View File


_kosmorro/assets/svg/kosmorro-icon-white.svg → kosmorro/assets/svg/kosmorro-icon-white.svg View File


_kosmorro/assets/svg/kosmorro-icon.svg → kosmorro/assets/svg/kosmorro-icon.svg View File


_kosmorro/assets/svg/kosmorro-logo-white.svg → kosmorro/assets/svg/kosmorro-logo-white.svg View File


_kosmorro/assets/svg/kosmorro-logo.svg → kosmorro/assets/svg/kosmorro-logo.svg View File


_kosmorro/date.py → kosmorro/date.py View File

@@ -5,7 +5,7 @@ import re
from dateutil.relativedelta import relativedelta from dateutil.relativedelta import relativedelta
from datetime import date from datetime import date


from _kosmorro.i18n.utils import _ from kosmorro.i18n.utils import _




def parse_date(date_arg: str) -> date: def parse_date(date_arg: str) -> date:

_kosmorro/debug.py → kosmorro/debug.py View File


_kosmorro/dumper.py → kosmorro/dumper.py View File


_kosmorro/environment.py → kosmorro/environment.py View File


_kosmorro/exceptions.py → kosmorro/exceptions.py View File

@@ -18,7 +18,7 @@


from datetime import date from datetime import date
from babel.dates import format_date from babel.dates import format_date
from _kosmorro.i18n.utils import _, SHORT_DATE_FORMAT from kosmorro.i18n.utils import _, SHORT_DATE_FORMAT




class UnavailableFeatureError(RuntimeError): class UnavailableFeatureError(RuntimeError):

_kosmorro/i18n/__init__.py → kosmorro/i18n/__init__.py View File


_kosmorro/i18n/strings.py → kosmorro/i18n/strings.py View File


_kosmorro/i18n/utils.py → kosmorro/i18n/utils.py View File


_kosmorro/locales/de/LC_MESSAGES/messages.po → kosmorro/locales/de/LC_MESSAGES/messages.po View File


+ 0
- 0
kosmorro/locales/en_XA/LC_MESSAGES/messages.po View File


_kosmorro/locales/es/LC_MESSAGES/messages.po → kosmorro/locales/es/LC_MESSAGES/messages.po View File


_kosmorro/locales/fr/LC_MESSAGES/messages.po → kosmorro/locales/fr/LC_MESSAGES/messages.po View File


_kosmorro/locales/messages.pot → kosmorro/locales/messages.pot View File

@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2022-03-07 16:45+0100\n" "POT-Creation-Date: 2022-03-19 13:28+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,315 +17,315 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n" "Generated-By: Babel 2.9.1\n"


#: _kosmorro/date.py:17 #: kosmorro/__main__.py:63
msgid "The date {date} is not valid: {error}" msgid ""
"Save the planet and paper!\n"
"Consider printing your PDF document only if really necessary, and use the"
" other side of the sheet."
msgstr "" msgstr ""


#: _kosmorro/date.py:39 #: kosmorro/__main__.py:72
msgid "" msgid ""
"The date {date} does not match the required YYYY-MM-DD format or the " "PDF output will not contain the ephemerides, because you didn't provide "
"offset format." "the observation coordinates."
msgstr "" msgstr ""


#: _kosmorro/dumper.py:137 #: kosmorro/__main__.py:117
msgid "Expected events:" msgid "The file could not be saved in \"{path}\": {error}"
msgstr "" msgstr ""


#: _kosmorro/dumper.py:144 #: kosmorro/__main__.py:131
msgid "Note: All the hours are given in UTC." msgid "Please provide a file path to export in this format (--output)."
msgstr "" msgstr ""


#: _kosmorro/dumper.py:151 #: kosmorro/__main__.py:164
msgid "Note: All the hours are given in the UTC{offset} timezone." msgid "Moon phase can only be computed between {min_date} and {max_date}"
msgstr "" msgstr ""


#: _kosmorro/dumper.py:205 _kosmorro/dumper.py:333 #: kosmorro/__main__.py:203
msgid "Object" msgid "Running on Python {python_version} with Kosmorrolib v{kosmorrolib_version}"
msgstr "" msgstr ""


#: _kosmorro/dumper.py:206 _kosmorro/dumper.py:334 #: kosmorro/__main__.py:216
msgid "Rise time" msgid ""
"Compute the ephemerides and the events for a given date and a given "
"position on Earth."
msgstr "" msgstr ""


#: _kosmorro/dumper.py:207 _kosmorro/dumper.py:336 #: kosmorro/__main__.py:219
msgid "Culmination time" msgid ""
"By default, only the events will be computed for today.\n"
"To compute also the ephemerides, latitude and longitude arguments are "
"needed."
msgstr "" msgstr ""


#: _kosmorro/dumper.py:208 _kosmorro/dumper.py:338 #: kosmorro/__main__.py:232
msgid "Set time" msgid "Show the program version"
msgstr "" msgstr ""


#: _kosmorro/dumper.py:234 #: kosmorro/__main__.py:240
msgid "Moon phase is unavailable for this date." msgid "The format to output the information to"
msgstr "" msgstr ""


#: _kosmorro/dumper.py:238 _kosmorro/dumper.py:342 #: kosmorro/__main__.py:247
msgid "Moon phase:" msgid ""
"The observer's latitude on Earth. Can also be set in the "
"KOSMORRO_LATITUDE environment variable."
msgstr "" msgstr ""


#: _kosmorro/dumper.py:242 #: kosmorro/__main__.py:257
msgid "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}" msgid ""
"The observer's longitude on Earth. Can also be set in the "
"KOSMORRO_LONGITUDE environment variable."
msgstr "" msgstr ""


#: _kosmorro/dumper.py:306 #: kosmorro/__main__.py:267
msgid "Overview of your sky" msgid ""
"The date for which the ephemerides must be calculated. Can be in the "
"YYYY-MM-DD format or an interval in the \"[+-]YyMmDd\" format (with Y, M,"
" and D numbers). Defaults to current date."
msgstr "" msgstr ""


#: _kosmorro/dumper.py:314 #: kosmorro/__main__.py:278
msgid "" msgid ""
"This document summarizes the ephemerides and the events of {date}. It " "The timezone to display the hours in (e.g. 2 for UTC+2 or -3 for UTC-3). "
"aims to help you to prepare your observation session. All the hours are " "Can also be set in the KOSMORRO_TIMEZONE environment variable."
"given in {timezone}."
msgstr "" msgstr ""


#: _kosmorro/dumper.py:324 #: kosmorro/__main__.py:287
msgid "" msgid "Disable the colors in the console."
"Don't forget to check the weather forecast before you go out with your "
"equipment."
msgstr "" msgstr ""


#: _kosmorro/dumper.py:331 #: kosmorro/__main__.py:294
msgid "Ephemerides of the day" msgid ""
"A file to export the output to. If not given, the standard output is "
"used. This argument is needed for PDF format."
msgstr "" msgstr ""


#: _kosmorro/dumper.py:340 #: kosmorro/__main__.py:303
msgid "hours" msgid ""
"Do not generate a graph to represent the rise and set times in the PDF "
"format."
msgstr "" msgstr ""


#: _kosmorro/dumper.py:347 #: kosmorro/__main__.py:311
msgid "Expected events" msgid "Show debugging messages"
msgstr "" msgstr ""


#: _kosmorro/dumper.py:487 #: kosmorro/date.py:17
msgid "" msgid "The date {date} is not valid: {error}"
"Building PDF was not possible, because some dependencies are not "
"installed.\n"
"Please look at the documentation at https://kosmorro.space/cli/generate-"
"pdf/ for more information."
msgstr "" msgstr ""


#: _kosmorro/dumper.py:540 #: kosmorro/date.py:39
#, python-format
msgid "" msgid ""
"An error occurred during the compilation of the PDF.\n" "The date {date} does not match the required YYYY-MM-DD format or the "
"Please open an issue at https://github.com/Kosmorro/kosmorro/issues and " "offset format."
"share the content of the log file at /tmp/kosmorro-%s.log"
msgstr "" msgstr ""


#: _kosmorro/exceptions.py:35 #: kosmorro/dumper.py:137
msgid "The date must be between {minimum_date} and {maximum_date}" msgid "Expected events:"
msgstr "" msgstr ""


#: _kosmorro/main.py:63 #: kosmorro/dumper.py:144
msgid "" msgid "Note: All the hours are given in UTC."
"Save the planet and paper!\n"
"Consider printing your PDF document only if really necessary, and use the"
" other side of the sheet."
msgstr "" msgstr ""


#: _kosmorro/main.py:72 #: kosmorro/dumper.py:151
msgid "" msgid "Note: All the hours are given in the UTC{offset} timezone."
"PDF output will not contain the ephemerides, because you didn't provide "
"the observation coordinates."
msgstr "" msgstr ""


#: _kosmorro/main.py:117 #: kosmorro/dumper.py:205 kosmorro/dumper.py:333
msgid "The file could not be saved in \"{path}\": {error}" msgid "Object"
msgstr "" msgstr ""


#: _kosmorro/main.py:131 #: kosmorro/dumper.py:206 kosmorro/dumper.py:334
msgid "Please provide a file path to export in this format (--output)." msgid "Rise time"
msgstr "" msgstr ""


#: _kosmorro/main.py:164 #: kosmorro/dumper.py:207 kosmorro/dumper.py:336
msgid "Moon phase can only be computed between {min_date} and {max_date}" msgid "Culmination time"
msgstr "" msgstr ""


#: _kosmorro/main.py:203 #: kosmorro/dumper.py:208 kosmorro/dumper.py:338
msgid "Running on Python {python_version} with Kosmorrolib v{kosmorrolib_version}" msgid "Set time"
msgstr "" msgstr ""


#: _kosmorro/main.py:216 #: kosmorro/dumper.py:234
msgid "" msgid "Moon phase is unavailable for this date."
"Compute the ephemerides and the events for a given date and a given "
"position on Earth."
msgstr "" msgstr ""


#: _kosmorro/main.py:219 #: kosmorro/dumper.py:238 kosmorro/dumper.py:342
msgid "" msgid "Moon phase:"
"By default, only the events will be computed for today.\n"
"To compute also the ephemerides, latitude and longitude arguments are "
"needed."
msgstr "" msgstr ""


#: _kosmorro/main.py:232 #: kosmorro/dumper.py:242
msgid "Show the program version" msgid "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}"
msgstr "" msgstr ""


#: _kosmorro/main.py:240 #: kosmorro/dumper.py:306
msgid "The format to output the information to" msgid "Overview of your sky"
msgstr "" msgstr ""


#: _kosmorro/main.py:247 #: kosmorro/dumper.py:314
msgid "" msgid ""
"The observer's latitude on Earth. Can also be set in the " "This document summarizes the ephemerides and the events of {date}. It "
"KOSMORRO_LATITUDE environment variable." "aims to help you to prepare your observation session. All the hours are "
"given in {timezone}."
msgstr "" msgstr ""


#: _kosmorro/main.py:257 #: kosmorro/dumper.py:324
msgid "" msgid ""
"The observer's longitude on Earth. Can also be set in the " "Don't forget to check the weather forecast before you go out with your "
"KOSMORRO_LONGITUDE environment variable." "equipment."
msgstr "" msgstr ""


#: _kosmorro/main.py:267 #: kosmorro/dumper.py:331
msgid "" msgid "Ephemerides of the day"
"The date for which the ephemerides must be calculated. Can be in the "
"YYYY-MM-DD format or an interval in the \"[+-]YyMmDd\" format (with Y, M,"
" and D numbers). Defaults to current date."
msgstr "" msgstr ""


#: _kosmorro/main.py:278 #: kosmorro/dumper.py:340
msgid "" msgid "hours"
"The timezone to display the hours in (e.g. 2 for UTC+2 or -3 for UTC-3). "
"Can also be set in the KOSMORRO_TIMEZONE environment variable."
msgstr "" msgstr ""


#: _kosmorro/main.py:287 #: kosmorro/dumper.py:347
msgid "Disable the colors in the console." msgid "Expected events"
msgstr "" msgstr ""


#: _kosmorro/main.py:294 #: kosmorro/dumper.py:487
msgid "" msgid ""
"A file to export the output to. If not given, the standard output is " "Building PDF was not possible, because some dependencies are not "
"used. This argument is needed for PDF format." "installed.\n"
"Please look at the documentation at https://kosmorro.space/cli/generate-"
"pdf/ for more information."
msgstr "" msgstr ""


#: _kosmorro/main.py:303 #: kosmorro/dumper.py:540
#, python-format
msgid "" msgid ""
"Do not generate a graph to represent the rise and set times in the PDF " "An error occurred during the compilation of the PDF.\n"
"format." "Please open an issue at https://github.com/Kosmorro/kosmorro/issues and "
"share the content of the log file at /tmp/kosmorro-%s.log"
msgstr "" msgstr ""


#: _kosmorro/main.py:311 #: kosmorro/exceptions.py:35
msgid "Show debugging messages" msgid "The date must be between {minimum_date} and {maximum_date}"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:11 #: kosmorro/i18n/strings.py:11
#, python-format #, python-format
msgid "%s is in opposition" msgid "%s is in opposition"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:12 #: kosmorro/i18n/strings.py:12
#, python-format #, python-format
msgid "%s and %s are in conjunction" msgid "%s and %s are in conjunction"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:13 #: kosmorro/i18n/strings.py:13
#, python-format #, python-format
msgid "%s occults %s" msgid "%s occults %s"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:15 #: kosmorro/i18n/strings.py:15
#, python-format #, python-format
msgid "Elongation of %s is maximal" msgid "Elongation of %s is maximal"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:18 #: kosmorro/i18n/strings.py:18
#, python-format #, python-format
msgid "%s is at its perigee" msgid "%s is at its perigee"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:19 #: kosmorro/i18n/strings.py:19
#, python-format #, python-format
msgid "%s is at its apogee" msgid "%s is at its apogee"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:35 #: kosmorro/i18n/strings.py:35
msgid "New Moon" msgid "New Moon"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:36 #: kosmorro/i18n/strings.py:36
msgid "Waxing Crescent" msgid "Waxing Crescent"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:37 #: kosmorro/i18n/strings.py:37
msgid "First Quarter" msgid "First Quarter"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:38 #: kosmorro/i18n/strings.py:38
msgid "Waxing Gibbous" msgid "Waxing Gibbous"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:39 #: kosmorro/i18n/strings.py:39
msgid "Full Moon" msgid "Full Moon"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:40 #: kosmorro/i18n/strings.py:40
msgid "Waning Gibbous" msgid "Waning Gibbous"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:41 #: kosmorro/i18n/strings.py:41
msgid "Last Quarter" msgid "Last Quarter"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:42 #: kosmorro/i18n/strings.py:42
msgid "Waning Crescent" msgid "Waning Crescent"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:53 #: kosmorro/i18n/strings.py:53
msgid "Sun" msgid "Sun"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:54 #: kosmorro/i18n/strings.py:54
msgid "Moon" msgid "Moon"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:55 #: kosmorro/i18n/strings.py:55
msgid "Mercury" msgid "Mercury"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:56 #: kosmorro/i18n/strings.py:56
msgid "Venus" msgid "Venus"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:57 #: kosmorro/i18n/strings.py:57
msgid "Mars" msgid "Mars"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:58 #: kosmorro/i18n/strings.py:58
msgid "Jupiter" msgid "Jupiter"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:59 #: kosmorro/i18n/strings.py:59
msgid "Saturn" msgid "Saturn"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:60 #: kosmorro/i18n/strings.py:60
msgid "Uranus" msgid "Uranus"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:61 #: kosmorro/i18n/strings.py:61
msgid "Neptune" msgid "Neptune"
msgstr "" msgstr ""


#: _kosmorro/i18n/strings.py:62 #: kosmorro/i18n/strings.py:62
msgid "Pluto" msgid "Pluto"
msgstr "" msgstr ""


#: _kosmorro/i18n/utils.py:27 #: kosmorro/i18n/utils.py:27
msgid "{day_of_week} {month} {day_number}, {year}" msgid "{day_of_week} {month} {day_number}, {year}"
msgstr "" msgstr ""


#: _kosmorro/i18n/utils.py:30 #: kosmorro/i18n/utils.py:30
msgid "{month} {day_number}, {hours}:{minutes}" msgid "{month} {day_number}, {hours}:{minutes}"
msgstr "" msgstr ""


#: _kosmorro/i18n/utils.py:33 #: kosmorro/i18n/utils.py:33
msgid "{month} {day_number}, {year}" msgid "{month} {day_number}, {year}"
msgstr "" msgstr ""


#: _kosmorro/i18n/utils.py:36 #: kosmorro/i18n/utils.py:36
msgid "{hours}:{minutes}" msgid "{hours}:{minutes}"
msgstr "" msgstr ""



_kosmorro/locales/nb_NO/LC_MESSAGES/messages.po → kosmorro/locales/nb_NO/LC_MESSAGES/messages.po View File


_kosmorro/locales/nl/LC_MESSAGES/messages.po → kosmorro/locales/nl/LC_MESSAGES/messages.po View File


_kosmorro/locales/ru/LC_MESSAGES/messages.po → kosmorro/locales/ru/LC_MESSAGES/messages.po View File


_kosmorro/utils.py → kosmorro/utils.py View File


+ 576
- 0
poetry.lock View File

@@ -0,0 +1,576 @@
[[package]]
name = "atomicwrites"
version = "1.4.0"
description = "Atomic file writes."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"

[[package]]
name = "attrs"
version = "21.4.0"
description = "Classes Without Boilerplate"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"

[package.extras]
dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"]
docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "cloudpickle"]
tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "cloudpickle"]

[[package]]
name = "aurornis"
version = "1.2.0"
description = "The Command Line Program Test Helper"
category = "dev"
optional = false
python-versions = ">=3.7"

[[package]]
name = "babel"
version = "2.9.1"
description = "Internationalization utilities"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"

[package.dependencies]
pytz = ">=2015.7"

[[package]]
name = "black"
version = "21.12b0"
description = "The uncompromising code formatter."
category = "dev"
optional = false
python-versions = ">=3.6.2"

[package.dependencies]
click = ">=7.1.2"
mypy-extensions = ">=0.4.3"
pathspec = ">=0.9.0,<1"
platformdirs = ">=2"
tomli = ">=0.2.6,<2.0.0"
typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\" and implementation_name == \"cpython\""}
typing-extensions = [
{version = ">=3.10.0.0", markers = "python_version < \"3.10\""},
{version = "!=3.10.0.1", markers = "python_version >= \"3.10\""},
]

[package.extras]
colorama = ["colorama (>=0.4.3)"]
d = ["aiohttp (>=3.7.4)"]
jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
python2 = ["typed-ast (>=1.4.3)"]
uvloop = ["uvloop (>=0.15.2)"]

[[package]]
name = "certifi"
version = "2021.10.8"
description = "Python package for providing Mozilla's CA Bundle."
category = "main"
optional = false
python-versions = "*"

[[package]]
name = "click"
version = "8.0.4"
description = "Composable command line interface toolkit"
category = "dev"
optional = false
python-versions = ">=3.6"

[package.dependencies]
colorama = {version = "*", markers = "platform_system == \"Windows\""}
importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}

[[package]]
name = "colorama"
version = "0.4.4"
description = "Cross-platform colored terminal text."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"

[[package]]
name = "importlib-metadata"
version = "4.11.3"
description = "Read metadata from Python packages"
category = "dev"
optional = false
python-versions = ">=3.7"

[package.dependencies]
typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""}
zipp = ">=0.5"

[package.extras]
docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"]
perf = ["ipython"]
testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "importlib-resources (>=1.3)"]

[[package]]
name = "iniconfig"
version = "1.1.1"
description = "iniconfig: brain-dead simple config-ini parsing"
category = "dev"
optional = false
python-versions = "*"

[[package]]
name = "jplephem"
version = "2.17"
description = "Use a JPL ephemeris to predict planet positions."
category = "main"
optional = false
python-versions = "*"

[package.dependencies]
numpy = "*"

[[package]]
name = "kosmorrolib"
version = "1.0.6"
description = "A library to computes the ephemerides."
category = "main"
optional = false
python-versions = ">=3.7,<3.11"

[package.dependencies]
python-dateutil = ">=2.8,<3.0"
skyfield = ">=1.21,<2.0"
skyfield-data = ">=3,<5"

[[package]]
name = "mypy-extensions"
version = "0.4.3"
description = "Experimental type system extensions for programs checked with the mypy typechecker."
category = "dev"
optional = false
python-versions = "*"

[[package]]
name = "numpy"
version = "1.21.5"
description = "NumPy is the fundamental package for array computing with Python."
category = "main"
optional = false
python-versions = ">=3.7,<3.11"

[[package]]
name = "packaging"
version = "21.3"
description = "Core utilities for Python packages"
category = "dev"
optional = false
python-versions = ">=3.6"

[package.dependencies]
pyparsing = ">=2.0.2,<3.0.5 || >3.0.5"

[[package]]
name = "pathspec"
version = "0.9.0"
description = "Utility library for gitignore style pattern matching of file paths."
category = "dev"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"

[[package]]
name = "platformdirs"
version = "2.5.1"
description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
category = "dev"
optional = false
python-versions = ">=3.7"

[package.extras]
docs = ["Sphinx (>=4)", "furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)"]
test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"]

[[package]]
name = "pluggy"
version = "1.0.0"
description = "plugin and hook calling mechanisms for python"
category = "dev"
optional = false
python-versions = ">=3.6"

[package.dependencies]
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}

[package.extras]
dev = ["pre-commit", "tox"]
testing = ["pytest", "pytest-benchmark"]

[[package]]
name = "py"
version = "1.11.0"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"

[[package]]
name = "pyparsing"
version = "3.0.7"
description = "Python parsing module"
category = "dev"
optional = false
python-versions = ">=3.6"

[package.extras]
diagrams = ["jinja2", "railroad-diagrams"]

[[package]]
name = "pytest"
version = "7.1.1"
description = "pytest: simple powerful testing with Python"
category = "dev"
optional = false
python-versions = ">=3.7"

[package.dependencies]
atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""}
attrs = ">=19.2.0"
colorama = {version = "*", markers = "sys_platform == \"win32\""}
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
iniconfig = "*"
packaging = "*"
pluggy = ">=0.12,<2.0"
py = ">=1.8.2"
tomli = ">=1.0.0"

[package.extras]
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"]

[[package]]
name = "python-dateutil"
version = "2.8.2"
description = "Extensions to the standard Python datetime module"
category = "main"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"

[package.dependencies]
six = ">=1.5"

[[package]]
name = "pytz"
version = "2021.3"
description = "World timezone definitions, modern and historical"
category = "main"
optional = false
python-versions = "*"

[[package]]
name = "sgp4"
version = "2.20"
description = "Track Earth satellites given TLE data, using up-to-date 2020 SGP4 routines."
category = "main"
optional = false
python-versions = "*"

[[package]]
name = "six"
version = "1.16.0"
description = "Python 2 and 3 compatibility utilities"
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"

[[package]]
name = "skyfield"
version = "1.42"
description = "Elegant astronomy for Python"
category = "main"
optional = false
python-versions = "*"

[package.dependencies]
certifi = ">=2017.4.17"
jplephem = ">=2.13"
numpy = "*"
sgp4 = ">=2.2"

[[package]]
name = "skyfield-data"
version = "4.0.0"
description = "Data package for Skyfield"
category = "main"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4"

[package.extras]
dev = ["jplephem", "numpy", "tox", "colorama", "termcolor"]
tests = ["pytest", "skyfield", "mock"]

[[package]]
name = "tabulate"
version = "0.8.9"
description = "Pretty-print tabular data"
category = "main"
optional = false
python-versions = "*"

[package.extras]
widechars = ["wcwidth"]

[[package]]
name = "termcolor"
version = "1.1.0"
description = "ANSII Color formatting for output in terminal."
category = "main"
optional = false
python-versions = "*"

[[package]]
name = "tomli"
version = "1.2.3"
description = "A lil' TOML parser"
category = "dev"
optional = false
python-versions = ">=3.6"

[[package]]
name = "typed-ast"
version = "1.5.2"
description = "a fork of Python 2 and 3 ast modules with type comment support"
category = "dev"
optional = false
python-versions = ">=3.6"

[[package]]
name = "typing-extensions"
version = "4.1.1"
description = "Backported and Experimental Type Hints for Python 3.6+"
category = "dev"
optional = false
python-versions = ">=3.6"

[[package]]
name = "zipp"
version = "3.7.0"
description = "Backport of pathlib-compatible object wrapper for zip files"
category = "dev"
optional = false
python-versions = ">=3.7"

[package.extras]
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]

[metadata]
lock-version = "1.1"
python-versions = ">=3.7,<3.11"
content-hash = "4c2045cb19d088e3205728efd723e8255ded94f211f21ca7f64aea90c05fe3ad"

[metadata.files]
atomicwrites = [
{file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"},
{file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"},
]
attrs = [
{file = "attrs-21.4.0-py2.py3-none-any.whl", hash = "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4"},
{file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"},
]
aurornis = [
{file = "aurornis-1.2.0-py3-none-any.whl", hash = "sha256:660b57e9d1701d88fb7cc4af3118c927e9e001d2ab39cb145695eb8470f4642a"},
{file = "aurornis-1.2.0.tar.gz", hash = "sha256:bc68845be5cdf2d69d26c677214f7435365967b4a65dc3772ab05353b2136d95"},
]
babel = [
{file = "Babel-2.9.1-py2.py3-none-any.whl", hash = "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9"},
{file = "Babel-2.9.1.tar.gz", hash = "sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0"},
]
black = [
{file = "black-21.12b0-py3-none-any.whl", hash = "sha256:a615e69ae185e08fdd73e4715e260e2479c861b5740057fde6e8b4e3b7dd589f"},
{file = "black-21.12b0.tar.gz", hash = "sha256:77b80f693a569e2e527958459634f18df9b0ba2625ba4e0c2d5da5be42e6f2b3"},
]
certifi = [
{file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"},
{file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"},
]
click = [
{file = "click-8.0.4-py3-none-any.whl", hash = "sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1"},
{file = "click-8.0.4.tar.gz", hash = "sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb"},
]
colorama = [
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
{file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
]
importlib-metadata = [
{file = "importlib_metadata-4.11.3-py3-none-any.whl", hash = "sha256:1208431ca90a8cca1a6b8af391bb53c1a2db74e5d1cef6ddced95d4b2062edc6"},
{file = "importlib_metadata-4.11.3.tar.gz", hash = "sha256:ea4c597ebf37142f827b8f39299579e31685c31d3a438b59f469406afd0f2539"},
]
iniconfig = [
{file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"},
{file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"},
]
jplephem = [
{file = "jplephem-2.17.tar.gz", hash = "sha256:e1c6e5565c4d00485f1063241b4d1eff044585c22b8e97fad0ff2f6efb8aaa27"},
]
kosmorrolib = [
{file = "kosmorrolib-1.0.6-py3-none-any.whl", hash = "sha256:9ffbbaa8666c1222bf8a25d543afa72a0a80249017d342a6667bcae8657effc0"},
{file = "kosmorrolib-1.0.6.tar.gz", hash = "sha256:8c77f40b346d183147cb3e927b3ea5c7d4d7067ce7e49edb73821566f74d5e51"},
]
mypy-extensions = [
{file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"},
{file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"},
]
numpy = [
{file = "numpy-1.21.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:301e408a052fdcda5cdcf03021ebafc3c6ea093021bf9d1aa47c54d48bdad166"},
{file = "numpy-1.21.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a7e8f6216f180f3fd4efb73de5d1eaefb5f5a1ee5b645c67333033e39440e63a"},
{file = "numpy-1.21.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fc7a7d7b0ed72589fd8b8486b9b42a564f10b8762be8bd4d9df94b807af4a089"},
{file = "numpy-1.21.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58ca1d7c8aef6e996112d0ce873ac9dfa1eaf4a1196b4ff7ff73880a09923ba7"},
{file = "numpy-1.21.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc4b2fb01f1b4ddbe2453468ea0719f4dbb1f5caa712c8b21bb3dd1480cd30d9"},
{file = "numpy-1.21.5-cp310-cp310-win_amd64.whl", hash = "sha256:cc1b30205d138d1005adb52087ff45708febbef0e420386f58664f984ef56954"},
{file = "numpy-1.21.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:08de8472d9f7571f9d51b27b75e827f5296295fa78817032e84464be8bb905bc"},
{file = "numpy-1.21.5-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4fe6a006557b87b352c04596a6e3f12a57d6e5f401d804947bd3188e6b0e0e76"},
{file = "numpy-1.21.5-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3d893b0871322eaa2f8c7072cdb552d8e2b27645b7875a70833c31e9274d4611"},
{file = "numpy-1.21.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:341dddcfe3b7b6427a28a27baa59af5ad51baa59bfec3264f1ab287aa3b30b13"},
{file = "numpy-1.21.5-cp37-cp37m-win32.whl", hash = "sha256:ca9c23848292c6fe0a19d212790e62f398fd9609aaa838859be8459bfbe558aa"},
{file = "numpy-1.21.5-cp37-cp37m-win_amd64.whl", hash = "sha256:025b497014bc33fc23897859350f284323f32a2fff7654697f5a5fc2a19e9939"},
{file = "numpy-1.21.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3a5098df115340fb17fc93867317a947e1dcd978c3888c5ddb118366095851f8"},
{file = "numpy-1.21.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:311283acf880cfcc20369201bd75da907909afc4666966c7895cbed6f9d2c640"},
{file = "numpy-1.21.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b545ebadaa2b878c8630e5bcdb97fc4096e779f335fc0f943547c1c91540c815"},
{file = "numpy-1.21.5-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c5562bcc1a9b61960fc8950ade44d00e3de28f891af0acc96307c73613d18f6e"},
{file = "numpy-1.21.5-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:eed2afaa97ec33b4411995be12f8bdb95c87984eaa28d76cf628970c8a2d689a"},
{file = "numpy-1.21.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61bada43d494515d5b122f4532af226fdb5ee08fe5b5918b111279843dc6836a"},
{file = "numpy-1.21.5-cp38-cp38-win32.whl", hash = "sha256:7b9d6b14fc9a4864b08d1ba57d732b248f0e482c7b2ff55c313137e3ed4d8449"},
{file = "numpy-1.21.5-cp38-cp38-win_amd64.whl", hash = "sha256:dbce7adeb66b895c6aaa1fad796aaefc299ced597f6fbd9ceddb0dd735245354"},
{file = "numpy-1.21.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:507c05c7a37b3683eb08a3ff993bd1ee1e6c752f77c2f275260533b265ecdb6c"},
{file = "numpy-1.21.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:00c9fa73a6989895b8815d98300a20ac993c49ac36c8277e8ffeaa3631c0dbbb"},
{file = "numpy-1.21.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:69a5a8d71c308d7ef33ef72371c2388a90e3495dbb7993430e674006f94797d5"},
{file = "numpy-1.21.5-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2d8adfca843bc46ac199a4645233f13abf2011a0b2f4affc5c37cd552626f27b"},
{file = "numpy-1.21.5-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c293d3c0321996cd8ffe84215ffe5d269fd9d1d12c6f4ffe2b597a7c30d3e593"},
{file = "numpy-1.21.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c978544be9e04ed12016dd295a74283773149b48f507d69b36f91aa90a643e5"},
{file = "numpy-1.21.5-cp39-cp39-win32.whl", hash = "sha256:2a9add27d7fc0fdb572abc3b2486eb3b1395da71e0254c5552b2aad2a18b5441"},
{file = "numpy-1.21.5-cp39-cp39-win_amd64.whl", hash = "sha256:1964db2d4a00348b7a60ee9d013c8cb0c566644a589eaa80995126eac3b99ced"},
{file = "numpy-1.21.5-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a7c4b701ca418cd39e28ec3b496e6388fe06de83f5f0cb74794fa31cfa384c02"},
{file = "numpy-1.21.5.zip", hash = "sha256:6a5928bc6241264dce5ed509e66f33676fc97f464e7a919edc672fb5532221ee"},
]
packaging = [
{file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"},
{file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"},
]
pathspec = [
{file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"},
{file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"},
]
platformdirs = [
{file = "platformdirs-2.5.1-py3-none-any.whl", hash = "sha256:bcae7cab893c2d310a711b70b24efb93334febe65f8de776ee320b517471e227"},
{file = "platformdirs-2.5.1.tar.gz", hash = "sha256:7535e70dfa32e84d4b34996ea99c5e432fa29a708d0f4e394bbcb2a8faa4f16d"},
]
pluggy = [
{file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"},
{file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"},
]
py = [
{file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"},
{file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"},
]
pyparsing = [
{file = "pyparsing-3.0.7-py3-none-any.whl", hash = "sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484"},
{file = "pyparsing-3.0.7.tar.gz", hash = "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea"},
]
pytest = [
{file = "pytest-7.1.1-py3-none-any.whl", hash = "sha256:92f723789a8fdd7180b6b06483874feca4c48a5c76968e03bb3e7f806a1869ea"},
{file = "pytest-7.1.1.tar.gz", hash = "sha256:841132caef6b1ad17a9afde46dc4f6cfa59a05f9555aae5151f73bdf2820ca63"},
]
python-dateutil = [
{file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"},
{file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
]
pytz = [
{file = "pytz-2021.3-py2.py3-none-any.whl", hash = "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c"},
{file = "pytz-2021.3.tar.gz", hash = "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"},
]
sgp4 = [
{file = "sgp4-2.20-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b2169cd536355fc67e3870acea34c4fc22b2ccecab2c0bf45a01edfe646fe3d0"},
{file = "sgp4-2.20-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:7d848698ae2bf5bb9ea2082640b0417175a6b2e6e8d580114ebe04265cd1bfb4"},
{file = "sgp4-2.20-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:1d3b5abc07266203f4b453e7c1ca8403ef2d7b8d1779c14c9a4177e4b1558ba5"},
{file = "sgp4-2.20-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:6c906973dc2966cba8065f359c3eaa18505280be8f625b54ebb98f5ddeb8d205"},
{file = "sgp4-2.20-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:3e3eb29c308d30d010316832606af184d243d5aab8ccc5d589f3cb85d74471f7"},
{file = "sgp4-2.20-cp36-cp36m-win32.whl", hash = "sha256:e73680b3b7b8b977766ae91eadd92988a0c3e36248dcac5d8263a957bec34a04"},
{file = "sgp4-2.20-cp36-cp36m-win_amd64.whl", hash = "sha256:cf4d5ac32b5e84c7b420109a09ea3c3741844fa92776f79d1c852cc67e2c1364"},
{file = "sgp4-2.20-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2a89fc1debacfa10cf55ae1d40472037a57687b1ae3b66e7196e5af53fb96a56"},
{file = "sgp4-2.20-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:4d5eb2aff4f645f5020ac869ec453dcd807836b3eb8b459d569eda40c358cd76"},
{file = "sgp4-2.20-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:2b449e6cab15748608c6083f86b0059d26093f76fa227010df09d8f0954b3bbd"},
{file = "sgp4-2.20-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:8c2f4f99ab360a93768bf88ad6a9fdf83edfa6292e0a0ac8924c85fde11b2055"},
{file = "sgp4-2.20-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:ee3688ae409a201107927b24be10db2a61efdd5a919737b4900c57ee8b3a22d6"},
{file = "sgp4-2.20-cp37-cp37m-win32.whl", hash = "sha256:24477da85936b864fd765911f808a4d113c81189c2a0ecd5992bcdf9aecbf5ef"},
{file = "sgp4-2.20-cp37-cp37m-win_amd64.whl", hash = "sha256:ee329571c1a25ce4f1e2b01d6f923791d16c5a7a3a75219317073bc50a7d25fe"},
{file = "sgp4-2.20-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1af727dfe02ef32babd124644e96b8cc109b22142efb44e37d0e3aaf4c38a1ab"},
{file = "sgp4-2.20-cp38-cp38-manylinux1_i686.whl", hash = "sha256:43c2c6d464144bb80987b2e66f3992add58c65e095abe2b9d567650fdb877a9d"},
{file = "sgp4-2.20-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:67f99f534fdc5650d8efe516e77dd9b43e4cb8ab9b38f2b66484085c0ff75077"},
{file = "sgp4-2.20-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:dfc5214b65ad8229c499f0da3f5042a18239f12f4318e90d892a79dcbf27282f"},
{file = "sgp4-2.20-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:e8ecc01fdffe81f11ca94bb255024379e62c92f73e2baec2bdf5a3c3108221ff"},
{file = "sgp4-2.20-cp38-cp38-win32.whl", hash = "sha256:06586caf071e3427bc4e5a5c84a806045532040dc2c35ca0ff12f34cab2ecb5c"},
{file = "sgp4-2.20-cp38-cp38-win_amd64.whl", hash = "sha256:642bae76c6e55b72feda3c5ca3721e837f2702816a120805349b06e40f85faea"},
{file = "sgp4-2.20-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dbfffe1ff2c223804e2ebdeb568baad46f40342943c4a74169fd75dc5dddda57"},
{file = "sgp4-2.20-cp39-cp39-manylinux1_i686.whl", hash = "sha256:05f22b4fd91861ee2e0e03a528c1aef11a8b263a60ab5f723d32cdb65dac3eaa"},
{file = "sgp4-2.20-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:80f9b2f1c2ac53c7b8cbf1a08e5a39a56c1b7c18d3e0de922078758a784b0b20"},
{file = "sgp4-2.20-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:f5d2830f2896cecc4af0729cd328994ae823f277f481d4fc992383eb79f3742a"},
{file = "sgp4-2.20-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ea37423d4317ec5351a4e3b6a3947a6053978e5290549d77ba375459527f7ccb"},
{file = "sgp4-2.20-cp39-cp39-win32.whl", hash = "sha256:d42a3dcdfd394c5059b99bbf8b35311e03e87d21fbfb6ba2d5c5d2dfad15d4d7"},
{file = "sgp4-2.20-cp39-cp39-win_amd64.whl", hash = "sha256:876b82d41a859c9ff65d3bdb7f6a3cecfc63bea529b4dc751b06eefbd6c3f1e0"},
{file = "sgp4-2.20.tar.gz", hash = "sha256:9fde328872f484eb644dabe32122ba617570ff61b548b7200a9d63629ac3097c"},
]
six = [
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
]
skyfield = [
{file = "skyfield-1.42.tar.gz", hash = "sha256:3447fd3a9a9dabc2080e6a4efb56d9883decf261ad78e6c9b3f187c4fc761ace"},
]
skyfield-data = [
{file = "skyfield-data-4.0.0.tar.gz", hash = "sha256:128d407e43a04be66c44b03914f9147b5e65b96078db776e6a4f5538ab0b74bf"},
{file = "skyfield_data-4.0.0-py2.py3-none-any.whl", hash = "sha256:bd81bf9032d4833a766f4127e868d62674083ca2ccaea07e6d025e132c9c574e"},
]
tabulate = [
{file = "tabulate-0.8.9-py3-none-any.whl", hash = "sha256:d7c013fe7abbc5e491394e10fa845f8f32fe54f8dc60c6622c6cf482d25d47e4"},
{file = "tabulate-0.8.9.tar.gz", hash = "sha256:eb1d13f25760052e8931f2ef80aaf6045a6cceb47514db8beab24cded16f13a7"},
]
termcolor = [
{file = "termcolor-1.1.0.tar.gz", hash = "sha256:1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"},
]
tomli = [
{file = "tomli-1.2.3-py3-none-any.whl", hash = "sha256:e3069e4be3ead9668e21cb9b074cd948f7b3113fd9c8bba083f48247aab8b11c"},
{file = "tomli-1.2.3.tar.gz", hash = "sha256:05b6166bff487dc068d322585c7ea4ef78deed501cc124060e0f238e89a9231f"},
]
typed-ast = [
{file = "typed_ast-1.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:183b183b7771a508395d2cbffd6db67d6ad52958a5fdc99f450d954003900266"},
{file = "typed_ast-1.5.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:676d051b1da67a852c0447621fdd11c4e104827417bf216092ec3e286f7da596"},
{file = "typed_ast-1.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc2542e83ac8399752bc16e0b35e038bdb659ba237f4222616b4e83fb9654985"},
{file = "typed_ast-1.5.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:74cac86cc586db8dfda0ce65d8bcd2bf17b58668dfcc3652762f3ef0e6677e76"},
{file = "typed_ast-1.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:18fe320f354d6f9ad3147859b6e16649a0781425268c4dde596093177660e71a"},
{file = "typed_ast-1.5.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:31d8c6b2df19a777bc8826770b872a45a1f30cfefcfd729491baa5237faae837"},
{file = "typed_ast-1.5.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:963a0ccc9a4188524e6e6d39b12c9ca24cc2d45a71cfdd04a26d883c922b4b78"},
{file = "typed_ast-1.5.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0eb77764ea470f14fcbb89d51bc6bbf5e7623446ac4ed06cbd9ca9495b62e36e"},
{file = "typed_ast-1.5.2-cp36-cp36m-win_amd64.whl", hash = "sha256:294a6903a4d087db805a7656989f613371915fc45c8cc0ddc5c5a0a8ad9bea4d"},
{file = "typed_ast-1.5.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:26a432dc219c6b6f38be20a958cbe1abffcc5492821d7e27f08606ef99e0dffd"},
{file = "typed_ast-1.5.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7407cfcad702f0b6c0e0f3e7ab876cd1d2c13b14ce770e412c0c4b9728a0f88"},
{file = "typed_ast-1.5.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f30ddd110634c2d7534b2d4e0e22967e88366b0d356b24de87419cc4410c41b7"},
{file = "typed_ast-1.5.2-cp37-cp37m-win_amd64.whl", hash = "sha256:8c08d6625bb258179b6e512f55ad20f9dfef019bbfbe3095247401e053a3ea30"},
{file = "typed_ast-1.5.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:90904d889ab8e81a956f2c0935a523cc4e077c7847a836abee832f868d5c26a4"},
{file = "typed_ast-1.5.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:bbebc31bf11762b63bf61aaae232becb41c5bf6b3461b80a4df7e791fabb3aca"},
{file = "typed_ast-1.5.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c29dd9a3a9d259c9fa19d19738d021632d673f6ed9b35a739f48e5f807f264fb"},
{file = "typed_ast-1.5.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:58ae097a325e9bb7a684572d20eb3e1809802c5c9ec7108e85da1eb6c1a3331b"},
{file = "typed_ast-1.5.2-cp38-cp38-win_amd64.whl", hash = "sha256:da0a98d458010bf4fe535f2d1e367a2e2060e105978873c04c04212fb20543f7"},
{file = "typed_ast-1.5.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:33b4a19ddc9fc551ebabca9765d54d04600c4a50eda13893dadf67ed81d9a098"},
{file = "typed_ast-1.5.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1098df9a0592dd4c8c0ccfc2e98931278a6c6c53cb3a3e2cf7e9ee3b06153344"},
{file = "typed_ast-1.5.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42c47c3b43fe3a39ddf8de1d40dbbfca60ac8530a36c9b198ea5b9efac75c09e"},
{file = "typed_ast-1.5.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f290617f74a610849bd8f5514e34ae3d09eafd521dceaa6cf68b3f4414266d4e"},
{file = "typed_ast-1.5.2-cp39-cp39-win_amd64.whl", hash = "sha256:df05aa5b241e2e8045f5f4367a9f6187b09c4cdf8578bb219861c4e27c443db5"},
{file = "typed_ast-1.5.2.tar.gz", hash = "sha256:525a2d4088e70a9f75b08b3f87a51acc9cde640e19cc523c7e41aa355564ae27"},
]
typing-extensions = [
{file = "typing_extensions-4.1.1-py3-none-any.whl", hash = "sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2"},
{file = "typing_extensions-4.1.1.tar.gz", hash = "sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42"},
]
zipp = [
{file = "zipp-3.7.0-py3-none-any.whl", hash = "sha256:b47250dd24f92b7dd6a0a8fc5244da14608f3ca90a5efcd37a3b1642fac9a375"},
{file = "zipp-3.7.0.tar.gz", hash = "sha256:9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d"},
]

+ 32
- 0
pyproject.toml View File

@@ -0,0 +1,32 @@
[tool.poetry]
name = "kosmorro"
version = "0.10.9"
description = "A program to compute the ephemerides."
authors = ["Jérôme Deuchnord <jerome@deuchnord.fr>"]
license = "AGPL-3.0-or-later"

include = [
"CHANGELOG.md",
"kosmorro/locales/*/LC_MESSAGES/*.mo",
"kosmorro/assets",
]

[tool.poetry.scripts]
kosmorro = 'kosmorro.__main__:main'

[tool.poetry.dependencies]
python = ">=3.7,<3.11"
tabulate = "^0.8"
termcolor = "^1.1"
kosmorrolib = "^1.0"
python-dateutil = "^2.8"
Babel = "^2.9"

[tool.poetry.dev-dependencies]
black = "^21.12b0"
pytest = "^7.0"
aurornis = "^1.2"

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

+ 3
- 3
setup.cfg View File

@@ -2,11 +2,11 @@
charset = utf-8 charset = utf-8
keywords = _ ngettext keywords = _ ngettext
width = 120 width = 120
output_file = _kosmorro/locales/messages.pot output_file = kosmorro/locales/messages.pot
omit_header = true omit_header = true
copyright_holder = Jérôme Deuchnord copyright_holder = Jérôme Deuchnord
input_paths=kosmorro,_kosmorro input_paths=kosmorro


[compile_catalog] [compile_catalog]
domain = messages domain = messages
directory = _kosmorro/locales directory = kosmorro/locales

+ 0
- 60
setup.py View File

@@ -1,60 +0,0 @@
#!/usr/bin/env python3

# Kosmorro - Compute The Next Ephemerides
# Copyright (C) 2019 Jérôme Deuchnord <jerome@deuchnord.fr>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.

import pathlib
from setuptools import setup, find_packages

from _kosmorro.__version__ import __version__

HERE = pathlib.Path(__file__).parent
README = (HERE / "README.md").read_text()

setup(
name="kosmorro",
version=__version__,
author="Jérôme Deuchnord",
author_email="jerome@deuchnord.fr",
url="http://kosmorro.space",
license="AGPL-3.0",
description="A program that computes the ephemerides.",
long_description=README,
long_description_content_type="text/markdown",
keywords="kosmorro astronomy ephemerides ephemeris",
packages=find_packages(),
scripts=["kosmorro"],
include_package_data=True,
data_files=[
("man/man1", ["manpage/kosmorro.1"]),
("man/man7", ["manpage/kosmorro.7"]),
],
install_requires=[
"kosmorrolib",
"tabulate",
"termcolor",
"python-dateutil",
"babel",
],
classifiers=[
"Development Status :: 3 - Alpha",
"Operating System :: POSIX :: Linux",
"Operating System :: MacOS :: MacOS X",
"Environment :: Console",
"Topic :: Scientific/Engineering :: Astronomy",
],
python_requires=">=3.7",
)

+ 1
- 1
tests/utils.py View File

@@ -7,7 +7,7 @@ from os import environ
from typing import Union from typing import Union


DEFAULT_ENVIRONMENT = {"PATH": environ["PATH"]} DEFAULT_ENVIRONMENT = {"PATH": environ["PATH"]}
KOSMORRO = ["./kosmorro", "--no-color"] KOSMORRO = ["kosmorro", "--no-color"]


CURRENT_MOON_PHASE_PATTERN = re.compile( CURRENT_MOON_PHASE_PATTERN = re.compile(
r"^Moon phase: (" r"^Moon phase: ("


||||||
x
 
000:0
Loading…
Cancel
Save