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 2 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
- Other (explain in the description)


- 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
pipenv install --dev
pip install -U pip poetry appimage-builder
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
pipenv sync -d
pip install --upgrade pip poetry
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 pipenv
pipenv sync --dev
make manpage
pip install -U pip poetry
poetry install


- 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
init: pipenv sync --dev --pre
- before: pip install -U pip poetry
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
$ make messages
```bash
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.

### 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:
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:


```shell
make test
```bash
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.
If you have troubles reading them, feel free to ask.
### Testing the code


#### 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):

```bash
conventional-changelog -p angular -i CHANGELOG.md -s
```
The commit messages are then used to generate the changelog using [`conventional-changelog`](https://github.com/conventional-changelog/conventional-changelog).


## 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 \
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
LANG=C python3 -m poetry run 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.
Then, run Kosmorro by invoking `pipenv run python kosmorro`.
Clone this repository and run `poetry install` to install all the dependencies.
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
msgid "The date {date} is not valid: {error}"
#: kosmorro/__main__.py:63
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 "
"offset format."
"PDF output will not contain the ephemerides, because you didn't provide "
"the observation coordinates."
msgstr "" msgstr ""


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


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


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


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


#: _kosmorro/dumper.py:206 _kosmorro/dumper.py:334
msgid "Rise time"
#: kosmorro/__main__.py:216
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
msgid "Culmination time"
#: kosmorro/__main__.py:219
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
msgid "Set time"
#: kosmorro/__main__.py:232
msgid "Show the program version"
msgstr "" msgstr ""


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


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


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


#: _kosmorro/dumper.py:306
msgid "Overview of your sky"
#: kosmorro/__main__.py:267
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 "
"aims to help you to prepare your observation session. All the hours are "
"given in {timezone}."
"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/dumper.py:324
msgid ""
"Don't forget to check the weather forecast before you go out with your "
"equipment."
#: kosmorro/__main__.py:287
msgid "Disable the colors in the console."
msgstr "" msgstr ""


#: _kosmorro/dumper.py:331
msgid "Ephemerides of the day"
#: kosmorro/__main__.py:294
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
msgid "hours"
#: kosmorro/__main__.py:303
msgid ""
"Do not generate a graph to represent the rise and set times in the PDF "
"format."
msgstr "" msgstr ""


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


#: _kosmorro/dumper.py:487
msgid ""
"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."
#: kosmorro/date.py:17
msgid "The date {date} is not valid: {error}"
msgstr "" msgstr ""


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


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


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


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


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


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


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


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


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


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


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


#: _kosmorro/main.py:240
msgid "The format to output the information to"
#: kosmorro/dumper.py:306
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 "
"KOSMORRO_LATITUDE environment variable."
"This document summarizes the ephemerides and the events of {date}. It "
"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 "
"KOSMORRO_LONGITUDE environment variable."
"Don't forget to check the weather forecast before you go out with your "
"equipment."
msgstr "" msgstr ""


#: _kosmorro/main.py:267
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."
#: kosmorro/dumper.py:331
msgid "Ephemerides of the day"
msgstr "" msgstr ""


#: _kosmorro/main.py:278
msgid ""
"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."
#: kosmorro/dumper.py:340
msgid "hours"
msgstr "" msgstr ""


#: _kosmorro/main.py:287
msgid "Disable the colors in the console."
#: kosmorro/dumper.py:347
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 "
"used. This argument is needed for PDF format."
"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/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 "
"format."
"An error occurred during the compilation of the PDF.\n"
"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
msgid "Show debugging messages"
#: kosmorro/exceptions.py:35
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: ("


Loading…
Cancel
Save