diff --git a/.all-contributorsrc b/.all-contributorsrc new file mode 100644 index 0000000..3f66131 --- /dev/null +++ b/.all-contributorsrc @@ -0,0 +1,124 @@ +{ + "projectName": "kosmorro", + "projectOwner": "Jérôme Deuchnord", + "repoType": "github", + "repoHost": "https://github.com", + "files": [ + "CONTRIBUTORS.md" + ], + "imageSize": 100, + "commit": true, + "commitConvention": "angular", + "contributorsSortAlphabetically": true, + "contributors": [ + { + "login": "Deuchnord", + "name": "Jérôme Deuchnord", + "avatar_url": "https://avatars.githubusercontent.com/u/7600265?v=4", + "profile": "https://deuchnord.fr/", + "contributions": [ + "code" + ] + }, + { + "login": "Brainface1", + "name": "brain_face", + "avatar_url": "https://avatars.githubusercontent.com/u/40472418?v=4", + "profile": "https://github.com/Brainface1", + "contributions": [ + "code" + ] + }, + { + "login": "Damgermys", + "name": "Damgermys", + "avatar_url": "https://avatars.githubusercontent.com/u/82285874?v=4", + "profile": "https://github.com/Damgermys", + "contributions": [ + "translation" + ] + }, + { + "login": "nicfb", + "name": "Nic", + "avatar_url": "https://avatars.githubusercontent.com/u/19811100?v=4", + "profile": "https://github.com/nicfb", + "contributions": [ + "code" + ] + }, + { + "login": "comradekingu", + "name": "Allan Nordhøy", + "avatar_url": "https://avatars.githubusercontent.com/u/13802408?v=4", + "profile": "https://liberapay.com/kingu/", + "contributions": [ + "translation" + ] + }, + { + "login": "AmauryCarrade", + "name": "Amaury Carrade", + "avatar_url": "https://avatars.githubusercontent.com/u/1417570?v=4", + "profile": "https://amaury.carrade.eu/", + "contributions": [ + "translation" + ] + }, + { + "login": "StaloneLab", + "name": "Titouan S.", + "avatar_url": "https://avatars.githubusercontent.com/u/6739422?v=4", + "profile": "https://github.com/StaloneLab", + "contributions": [ + "translation" + ] + }, + { + "login": "thierry-FreeBSD", + "name": "Thierry Thomas", + "avatar_url": "https://avatars.githubusercontent.com/u/6819982?v=4", + "profile": "http://people.freebsd.org/~thierry/", + "contributions": [ + "platform" + ] + }, + { + "login": "SpeedCode", + "name": "SpeedCode", + "avatar_url": "https://avatars.githubusercontent.com/u/12190842?v=4", + "profile": "https://github.com/SpeedCode", + "contributions": [ + "bug" + ] + }, + { + "login": "ChabaneAmaury", + "name": "Amaury Chabane", + "avatar_url": "https://avatars.githubusercontent.com/u/24982486?v=4", + "profile": "https://github.com/ChabaneAmaury", + "contributions": [ + "ideas" + ] + }, + { + "login": "WinXaito", + "name": "Kevin Vuilleumier", + "avatar_url": "https://avatars.githubusercontent.com/u/8223773?v=4", + "profile": "http://winxaito.com/", + "contributions": [ + "ideas" + ] + }, + { + "login": "romco1410", + "name": "Roman Hanečák", + "avatar_url": "https://avatars.githubusercontent.com/u/40452973?v=4", + "profile": "https://github.com/romco1410", + "contributions": [ + "code" + ] + } + ], + "contributorsPerLine": 7 +} diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index b3fdb6e..bccfb59 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -88,10 +88,9 @@ body: - PyPI - Arch User Repository (AUR) - FreshPorts - - Docker + - I used the AppImage - I have compiled the package from source - - I have run Kosmorro with Pipenv - - other + - Other (explain in the description) - type: textarea id: description diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index afcbb8b..62333dc 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -4,6 +4,7 @@ on: pull_request: branches: [master, features] release: + types: [published] jobs: build-appimage: @@ -18,8 +19,8 @@ jobs: sudo gem install ronn 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 - pip install -U pip pipenv Babel wheel appimage-builder - pipenv install --dev + pip install -U pip poetry appimage-builder + poetry install - name: Build wheel run: | @@ -40,3 +41,8 @@ jobs: with: name: kosmorro.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 diff --git a/.github/workflows/dockerfile.yml b/.github/workflows/dockerfile.yml deleted file mode 100644 index 32d6d30..0000000 --- a/.github/workflows/dockerfile.yml +++ /dev/null @@ -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 diff --git a/.github/workflows/i18n.yml b/.github/workflows/i18n.yml index 95d77e9..b4d39f4 100644 --- a/.github/workflows/i18n.yml +++ b/.github/workflows/i18n.yml @@ -11,26 +11,27 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 - name: Set up Python - uses: actions/setup-python@v1 + uses: actions/setup-python@v2 with: - python-version: 3.8 + python-version: '3.x' - name: Install dependencies run: | - pip install --upgrade pip pipenv - pipenv sync -d + pip install --upgrade pip poetry + poetry install - name: Check i18n run: | - pipenv run python setup.py extract_messages --output-file=/tmp/kosmorro-messages.pot > /dev/null - diff=$(diff _kosmorro/locales/messages.pot /tmp/kosmorro-messages.pot | grep '^>') + poetry run pybabel extract --output=/tmp/kosmorro-messages.pot kosmorro + echo + diff=$(diff kosmorro/locales/messages.pot /tmp/kosmorro-messages.pot | grep '^>') n=$(echo "$diff" | grep -v '> "POT-Creation-Date: ' | wc -l) 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 - echo " pipenv sync --dev" + echo " poetry install" echo echo " Then update the messages file:" echo diff --git a/.github/workflows/manpage.yml b/.github/workflows/manpage.yml new file mode 100644 index 0000000..9183a00 --- /dev/null +++ b/.github/workflows/manpage.yml @@ -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 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 91b0459..e7365fc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,34 +1,32 @@ name: Release Application on: - - release + release: + types: [published] jobs: pipy: name: Build and Release to PyPI runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 + - name: Set up Python - uses: actions/setup-python@v1 + uses: actions/setup-python@v2 with: - python-version: '3.7' - - name: Setup environment - run: | - sudo apt update - sudo apt install ruby - sudo gem install ronn - - name: Install dependencies + python-version: '3.x' + + - name: Prepare environment run: | - python -m pip install --upgrade pip - pip install pipenv setuptools wheel twine skyfield numpy tabulate Babel requests + python -m pip install --upgrade pip poetry + - name: Build package run: | + poetry install make i18n build + - name: Publish to PyPI env: - TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} - TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_PASSWORD }} run: | - twine upload dist/* - + poetry publish diff --git a/.github/workflows/e2e.yml b/.github/workflows/tests.yml similarity index 53% rename from .github/workflows/e2e.yml rename to .github/workflows/tests.yml index 7263b0a..b2eab1b 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/tests.yml @@ -1,4 +1,4 @@ -name: E2E tests +name: Tests on: push: @@ -17,38 +17,39 @@ jobs: fail-fast: false matrix: os: - - ubuntu-18.04 - - ubuntu-20.04 + - ubuntu-latest + - macos-latest python-version: - '3.7' - '3.8' - '3.9' + - '3.10' - name: E2E tests (Python ${{ matrix.python-version }} on ${{ matrix.os }}) + name: Python ${{ matrix.python-version }} on ${{ matrix.os }} steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 - name: Set up Python - uses: actions/setup-python@v1 + uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Prepare tests run: | - sudo apt update - sudo apt install ruby - sudo gem install ronn - pip install -U setuptools pip requests wheel Babel + pip install -U pip poetry + poetry install - name: E2E tests run: | - export ENVIRONMENT="CI" - bash .scripts/tests-e2e.sh + make tests - - name: manpage (section 1) + - name: Install TeXLive (Ubuntu) + if: ${{ matrix.os == 'ubuntu-latest' }} run: | - man -P $(which cat) kosmorro + sudo apt-get install -y texlive texlive-latex-extra - - name: manpage (section 7) + - name: E2E tests + env: + TEXLIVE_INSTALLED: 1 run: | - man -P $(which cat) 7 kosmorro + make tests diff --git a/.gitpod.yml b/.gitpod.yml index 1ddfc91..01df18e 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -10,5 +10,5 @@ vscode: tasks: - 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 diff --git a/.scripts/tests-e2e.sh b/.scripts/tests-e2e.sh index 5566054..e69de29 100755 --- a/.scripts/tests-e2e.sh +++ b/.scripts/tests-e2e.sh @@ -1,154 +0,0 @@ -#!/bin/bash - -VERSION=$(grep -Eo '[0-9]+\.[0-9]+\.[0-9]+' _kosmorro/__version__.py) -PYTHON_BIN=$(command -v python) -PIP_BIN=$(command -v pip) - -if python3 --version > /dev/null; then - PYTHON_BIN=$(command -v python3) - PIP_BIN=$(command -v pip3) -fi - -failures='' - -function fail() { - failures="$failures\n\n - $1\n\n$2" -} - -function run() { - eval "$1" &> /tmp/output.txt - return $? -} - -function canRun() { - if [[ "$1" != "" && "$1" != "$ENVIRONMENT" ]]; then - return 1 - fi - - return 0 -} - -# Asserts that command $1 has finished with sucess -# $1: the command to run -function assertSuccess() { - if ! canRun "$2"; then - echo -n 'I' - return - fi - - run "$1" - returned=$? - - if [ $returned -ne 0 ]; then - fail "Failed asserting that command '$1' finishes with success, returned status $returned." "$(cat /tmp/output.txt)" - echo -n 'F' - return - fi - - echo -n '.' -} - -# Asserts that command $1 has finished with sucess -# $1: the command to run -function assertFailure() { - if ! canRun "$2"; then - echo -n 'I' - return - fi - - run "$1" - returned=$? - - if [ $returned -eq 0 ]; then - fail "Failed asserting that command '$1' finishes with failure." "$(cat /tmp/output.txt)" - echo -n 'F' - return - fi - - echo -n '.' -} - -mkdir -p $HOME/kosmorro/export - -echo -echo "==== RUNNING E2E TESTS ====" -echo - -# Create the package and install it -assertSuccess "make build" -assertSuccess "$PIP_BIN install dist/kosmorro-$VERSION.tar.gz" "CI" - -KOSMORRO_COMMAND="kosmorro --debug" - -assertSuccess "$KOSMORRO_COMMAND" -assertSuccess "$KOSMORRO_COMMAND -h" - -assertSuccess "$KOSMORRO_COMMAND -d 2020-01-27" -assertFailure "$KOSMORRO_COMMAND -d yolo-yo-lo" -assertFailure "$KOSMORRO_COMMAND -d 2020-13-32" -assertFailure "$KOSMORRO_COMMAND --date=1789-05-05" -assertFailure "$KOSMORRO_COMMAND --date=3000-01-01" -assertSuccess "$KOSMORRO_COMMAND --date='+3y 5m3d'" -assertSuccess "$KOSMORRO_COMMAND --date='-1y3d'" -assertFailure "$KOSMORRO_COMMAND --date='+3d4m" -assertFailure "$KOSMORRO_COMMAND -date='3y'" - -assertFailure "$KOSMORRO_COMMAND --latitude=50.5876 --longitude=3.0624" - -assertSuccess "$KOSMORRO_COMMAND --position=\"9F25J3H5+M8\"" -assertFailure "$KOSMORRO_COMMAND --position=\"J3H5+M8\"" - -assertSuccess "$KOSMORRO_COMMAND --position=\"50.5876,3.0624\"" -assertSuccess "$KOSMORRO_COMMAND --position=\"50.5876;-3.0624\"" -assertSuccess "$KOSMORRO_COMMAND --position=\"-50.5876;-3.0624\"" -assertSuccess "$KOSMORRO_COMMAND --position=\"50.5876,-3.0624\"" -assertSuccess "$KOSMORRO_COMMAND --position=\"-50.5876,-3.0624\"" -assertSuccess "$KOSMORRO_COMMAND --position=\"\"" -assertSuccess "$KOSMORRO_COMMAND --position=\"50.5876;3.0624\" -d 2020-01-27" - -assertSuccess "$KOSMORRO_COMMAND --position=\"50.5876;3.0624\" -d 2020-01-27 --timezone=1" -assertSuccess "$KOSMORRO_COMMAND --position=\"50.5876;3.0624\" -d 2020-01-27 --timezone=-1" -assertSuccess "$KOSMORRO_COMMAND --position=\"50.5876;3.0624\" -d 2020-01-27 --format=json" -assertFailure "$KOSMORRO_COMMAND --position=\"50.5876;3.0624\" -d 2020-01-27 --format=pdf" - -assertSuccess "$KOSMORRO_COMMAND -d 2020-01-27 --format=json" - -# Environment variables -assertSuccess "LATITUDE=50.5876 LONGITUDE=3.0624 TIMEZONE=1 kosmorro -d 2020-01-27" -assertSuccess "LATITUDE=50.5876 LONGITUDE=3.0624 TIMEZONE=-1 kosmorro -d 2020-01-27" - -# Missing dependencies, should fail -assertFailure "$KOSMORRO_COMMAND --position=\"50.5876;3.0624\" -d 2020-01-27 --format=pdf -o $HOME/kosmorro/export/document.pdf" -assertFailure "ls $HOME/kosmorro/export/document.pdf" - -assertSuccess "sudo apt-get install -y texlive texlive-latex-extra" "CI" - -# Dependencies installed, should not fail -assertSuccess "$KOSMORRO_COMMAND --position=\"50.5876;3.0624\" -d 2020-01-27 --format=pdf -o $HOME/kosmorro/export/document.pdf" -assertSuccess "ls $HOME/kosmorro/export/document.pdf" - -assertSuccess "$KOSMORRO_COMMAND --position=\"50.5876;3.0624\" -d 2020-01-27 --format=pdf -o $HOME/kosmorro/export/document-no-graph.pdf --no-graph" -assertSuccess "ls $HOME/kosmorro/export/document-no-graph.pdf" - -# If format argument is given, use it even if it conflicts with file extension -assertSuccess "$KOSMORRO_COMMAND --position=\"50.5876;3.0624\" -d 2020-01-27 --format=json -o $HOME/kosmorro/export/txt-document.txt" -assertSuccess "ls $HOME/kosmorro/export/txt-document.txt" - -assertSuccess "$KOSMORRO_COMMAND --position=\"50.5876;3.0624\" -d 2020-01-27 -o $HOME/kosmorro/export/txt-document.txt" -assertSuccess "ls $HOME/kosmorro/export/txt-document.txt" - -assertSuccess "$KOSMORRO_COMMAND --position=\"50.5876;3.0624\" -d 2020-01-27 -o $HOME/kosmorro/export/json-document.json" -assertSuccess "ls $HOME/kosmorro/export/json-document.json" - -assertSuccess "$KOSMORRO_COMMAND --position=\"50.5876;3.0624\" -d 2020-01-27 -o $HOME/kosmorro/export/pdf-document.pdf" -assertSuccess "ls $HOME/kosmorro/export/pdf-document.pdf" - -# man page -assertSuccess "man --pager=cat kosmorro" - -if [ "$failures" != "" ]; then - echo -e "\n$failures" - exit 2 -fi - -echo -e "\n\n==== TESTS RAN SUCCESSFULLY 👍 ====" diff --git a/AppImageBuilder.yml b/AppImageBuilder.yml index 05fbe3c..244017e 100644 --- a/AppImageBuilder.yml +++ b/AppImageBuilder.yml @@ -3,7 +3,7 @@ version: 1 script: | 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 AppDir: diff --git a/CHANGELOG.md b/CHANGELOG.md index 074f895..eecc5db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,24 @@ +# [Version 0.10.10](https://github.com/Kosmorro/kosmorro/compare/v0.10.9...v0.10.10) (2022-03-20) + + +### Bug Fixes + +* use Babel to translate the dates ([9268113](https://github.com/Kosmorro/kosmorro/commit/92681131062eb0a93e901a5598353e36d9fc590f)) +* **events:** ignore unsupported event types ([9bfa8f5](https://github.com/Kosmorro/kosmorro/commit/9bfa8f503d4b46f91777d0b99fbc84f2a116a340)) + + +### Features + +* **i18n:** delete pseudo-translation ([b2535ab](https://github.com/Kosmorro/kosmorro/commit/b2535abd4aa03e700e5e482f8c5cf7af050eac29)) + + +### BREAKING CHANGES + +* Docker support has been removed. + If you were using it, please migrate to [one of the other available options](https://kosmorro.space/cli/download/). + + + # [Version 0.10.9](https://github.com/Kosmorro/kosmorro/compare/v0.10.7...v0.10.9) (2022-01-12) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 832d0eb..4d1b849 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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) -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. @@ -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.') # Do: -from kosmorrolib.i18n import _ +from kosmorro.i18n import _ 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: -```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. ### 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 @@ -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). -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 diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md new file mode 100644 index 0000000..94024f5 --- /dev/null +++ b/CONTRIBUTORS.md @@ -0,0 +1,36 @@ + + +[![All Contributors](https://img.shields.io/badge/all_contributors-12-orange.svg?style=flat-square)](#contributors-) + +## Contributors ✨ + +Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): + + + + + + + + + + + + + + + + + + + + + +

Allan Nordhøy

🌍

Amaury Carrade

🌍

Amaury Chabane

🤔

Damgermys

🌍

Jérôme Deuchnord

💻

Kevin Vuilleumier

🤔

Nic

💻

Roman Hanečák

💻

SpeedCode

🐛

Thierry Thomas

📦

Titouan S.

🌍

brain_face

💻
+ + + + + + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 49557aa..0000000 --- a/Dockerfile +++ /dev/null @@ -1,34 +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 -RUN pip install Babel -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 Babel pipenv - -USER kosmorro - -CMD ["bash"] diff --git a/Makefile b/Makefile index c64a83e..b2e1c15 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,13 @@ black: - pipenv run black kosmorro _kosmorro setup.py + poetry run black kosmorro tests + +.PHONY: tests +tests: + LANG=C python3 -m poetry run pytest tests/*.py .PHONY: build -build: manpage - python3 setup.py sdist bdist_wheel +build: + poetry build .PHONY: manpage manpage: @@ -11,10 +15,10 @@ manpage: ronn --roff manpage/kosmorro.7.md messages: - pipenv run python setup.py extract_messages --output-file=_kosmorro/locales/messages.pot + poetry run pybabel extract --output=kosmorro/locales/messages.pot kosmorro i18n: - pipenv run python setup.py compile_catalog + poetry run pybabel compile --directory=kosmorro/locales changelog: conventional-changelog -p angular -i CHANGELOG.md -s diff --git a/Pipfile.lock b/Pipfile.lock deleted file mode 100644 index e81a19b..0000000 --- a/Pipfile.lock +++ /dev/null @@ -1,219 +0,0 @@ -{ - "_meta": { - "hash": { - "sha256": "c1f6551ee33e3015fa1aaa679059da0744c447948707b7e517cce926f336f6f9" - }, - "pipfile-spec": 6, - "requires": { - "python_version": "3" - }, - "sources": [ - { - "name": "pypi", - "url": "https://pypi.org/simple", - "verify_ssl": true - } - ] - }, - "default": { - "certifi": { - "hashes": [ - "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872", - "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569" - ], - "version": "==2021.10.8" - }, - "jplephem": { - "hashes": [ - "sha256:e1c6e5565c4d00485f1063241b4d1eff044585c22b8e97fad0ff2f6efb8aaa27" - ], - "version": "==2.17" - }, - "kosmorrolib": { - "hashes": [ - "sha256:2e87ca964764b710af72ac55aea625869051713938a60177fc62e85ce45acbe9", - "sha256:973b1c51aa652b990ef742220aaca3686f09382b7ff47e186be4039fd9009a32" - ], - "index": "pypi", - "version": "==1.0.4" - }, - "numpy": { - "hashes": [ - "sha256:0cfe07133fd00b27edee5e6385e333e9eeb010607e8a46e1cd673f05f8596595", - "sha256:11a1f3816ea82eed4178102c56281782690ab5993251fdfd75039aad4d20385f", - "sha256:2762331de395739c91f1abb88041f94a080cb1143aeec791b3b223976228af3f", - "sha256:283d9de87c0133ef98f93dfc09fad3fb382f2a15580de75c02b5bb36a5a159a5", - "sha256:3d22662b4b10112c545c91a0741f2436f8ca979ab3d69d03d19322aa970f9695", - "sha256:41388e32e40b41dd56eb37fcaa7488b2b47b0adf77c66154d6b89622c110dfe9", - "sha256:42c16cec1c8cf2728f1d539bd55aaa9d6bb48a7de2f41eb944697293ef65a559", - "sha256:47ee7a839f5885bc0c63a74aabb91f6f40d7d7b639253768c4199b37aede7982", - "sha256:5a311ee4d983c487a0ab546708edbdd759393a3dc9cd30305170149fedd23c88", - "sha256:5dc65644f75a4c2970f21394ad8bea1a844104f0fe01f278631be1c7eae27226", - "sha256:6ed0d073a9c54ac40c41a9c2d53fcc3d4d4ed607670b9e7b0de1ba13b4cbfe6f", - "sha256:76ba7c40e80f9dc815c5e896330700fd6e20814e69da9c1267d65a4d051080f1", - "sha256:818b9be7900e8dc23e013a92779135623476f44a0de58b40c32a15368c01d471", - "sha256:a024181d7aef0004d76fb3bce2a4c9f2e67a609a9e2a6ff2571d30e9976aa383", - "sha256:a955e4128ac36797aaffd49ab44ec74a71c11d6938df83b1285492d277db5397", - "sha256:a97a954a8c2f046d3817c2bce16e3c7e9a9c2afffaf0400f5c16df5172a67c9c", - "sha256:a97e82c39d9856fe7d4f9b86d8a1e66eff99cf3a8b7ba48202f659703d27c46f", - "sha256:b55b953a1bdb465f4dc181758570d321db4ac23005f90ffd2b434cc6609a63dd", - "sha256:bb02929b0d6bfab4c48a79bd805bd7419114606947ec8284476167415171f55b", - "sha256:bece0a4a49e60e472a6d1f70ac6cdea00f9ab80ff01132f96bd970cdd8a9e5a9", - "sha256:e41e8951749c4b5c9a2dc5fdbc1a4eec6ab2a140fdae9b460b0f557eed870f4d", - "sha256:f71d57cc8645f14816ae249407d309be250ad8de93ef61d9709b45a0ddf4050c" - ], - "markers": "python_version >= '3.8'", - "version": "==1.22.0" - }, - "python-dateutil": { - "hashes": [ - "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", - "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9" - ], - "index": "pypi", - "version": "==2.8.2" - }, - "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:3cbc6a053183973be87cfbb5959cc76e2dbd9ecce5e23658bb60abee3ed5b4b0" - ], - "version": "==1.41" - }, - "skyfield-data": { - "hashes": [ - "sha256:107b07a238633294ee5c3bb668ecc427619e6a3dd8364e51144eb451f99894bd", - "sha256:c1185c9aa316413fdd76ce5c81cc9a7d548fa95631037e47ba0fc028f131c760" - ], - "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", - "version": "==3.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": { - "babel": { - "hashes": [ - "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9", - "sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0" - ], - "index": "pypi", - "version": "==2.9.1" - }, - "black": { - "hashes": [ - "sha256:77b80f693a569e2e527958459634f18df9b0ba2625ba4e0c2d5da5be42e6f2b3", - "sha256:a615e69ae185e08fdd73e4715e260e2479c861b5740057fde6e8b4e3b7dd589f" - ], - "index": "pypi", - "version": "==21.12b0" - }, - "click": { - "hashes": [ - "sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3", - "sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b" - ], - "markers": "python_version >= '3.6'", - "version": "==8.0.3" - }, - "mypy-extensions": { - "hashes": [ - "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d", - "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8" - ], - "version": "==0.4.3" - }, - "pathspec": { - "hashes": [ - "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a", - "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1" - ], - "version": "==0.9.0" - }, - "platformdirs": { - "hashes": [ - "sha256:1d7385c7db91728b83efd0ca99a5afb296cab9d0ed8313a45ed8ba17967ecfca", - "sha256:440633ddfebcc36264232365d7840a970e75e1018d15b4327d11f91909045fda" - ], - "markers": "python_version >= '3.7'", - "version": "==2.4.1" - }, - "pytz": { - "hashes": [ - "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c", - "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326" - ], - "version": "==2021.3" - }, - "tomli": { - "hashes": [ - "sha256:05b6166bff487dc068d322585c7ea4ef78deed501cc124060e0f238e89a9231f", - "sha256:e3069e4be3ead9668e21cb9b074cd948f7b3113fd9c8bba083f48247aab8b11c" - ], - "markers": "python_version >= '3.6'", - "version": "==1.2.3" - }, - "typing-extensions": { - "hashes": [ - "sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e", - "sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b" - ], - "markers": "python_version >= '3.10'", - "version": "==4.0.1" - } - } -} diff --git a/README.md b/README.md index d7f7640..db2fc9e 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ # ![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/) [![IRC: #kosmorro on Libera.Chat](https://img.shields.io/badge/Libera.Chat-%23kosmorro-blueviolet)](https://web.libera.chat/?nick=Astronaut?#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/) [![IRC: #kosmorro on Libera.Chat](https://img.shields.io/badge/Libera.Chat-%23kosmorro-blueviolet)](https://web.libera.chat/?nick=Astronaut?#kosmorro) A program that calculates your astronomical ephemerides! +[![Stand with Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md) + ## Installation ### Production environment @@ -15,12 +17,12 @@ Before you run Kosmorro in your development environment, check you have installe - Python ≥ 3.7.0 (needed run Kosmorro) - 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 diff --git a/_kosmorro/__version__.py b/_kosmorro/__version__.py deleted file mode 100644 index 6b7b4c8..0000000 --- a/_kosmorro/__version__.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python3 - -# Kosmorro - Compute The Next Ephemerides -# Copyright (C) 2019 Jérôme Deuchnord -# -# 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 . - -__title__ = "kosmorro" -__description__ = "A program that computes your ephemerides" -__url__ = "https://kosmorro.space" -__version__ = "0.10.9" -__author__ = "Jérôme Deuchnord" -__author_email__ = "jerome@deuchnord.fr" -__license__ = "AGPL" -__copyright__ = "Copyright 2021 Jérôme Deuchnord" diff --git a/_kosmorro/locales/en_XA/LC_MESSAGES/messages.po b/_kosmorro/locales/en_XA/LC_MESSAGES/messages.po deleted file mode 100644 index 0f7c105..0000000 --- a/_kosmorro/locales/en_XA/LC_MESSAGES/messages.po +++ /dev/null @@ -1,437 +0,0 @@ -# Translations template for kosmorro. -# Copyright (C) 2021 ORGANIZATION -# This file is distributed under the same license as the kosmorro project. -# FIRST AUTHOR , 2021. -# Jérôme Deuchnord , 2021. -msgid "" -msgstr "" -"Project-Id-Version: kosmorro 0.9.0\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-11-20 12:12+0100\n" -"PO-Revision-Date: 2021-06-20 14:10+0000\n" -"Last-Translator: Anonymous \n" -"Language-Team: English (XA pseudolocale) \n" -"Language: en_XA\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.7\n" -"Generated-By: Babel 2.9.1\n" - -#: _kosmorro/date.py:17 -msgid "The date {date} is not valid: {error}" -msgstr "" -"~~~ Translatable ~~~The date {date} is not valid: {error}~~~ End " -"Translatable ~~~" - -#: _kosmorro/date.py:39 -msgid "" -"The date {date} does not match the required YYYY-MM-DD format or the offset " -"format." -msgstr "" -"~~~ Translatable ~~~The date {date} does not match the required YYYY-MM-DD " -"format or the offset format.~~~ End Translatable ~~~" - -#: _kosmorro/dumper.py:120 -msgid "Expected events:" -msgstr "~~~ Translatable ~~~Expected events:~~~ End Translatable ~~~" - -#: _kosmorro/dumper.py:127 -msgid "Note: All the hours are given in UTC." -msgstr "" -"~~~ Translatable ~~~Note: All the hours are given in UTC.~~~ End " -"Translatable ~~~" - -#: _kosmorro/dumper.py:134 -msgid "Note: All the hours are given in the UTC{offset} timezone." -msgstr "" -"~~~ Translatable ~~~Note: All the hours are given in the UTC{offset} " -"timezone.~~~ End Translatable ~~~" - -#: _kosmorro/dumper.py:202 _kosmorro/dumper.py:335 -msgid "Object" -msgstr "~~~ Translatable ~~~Object~~~ End Translatable ~~~" - -#: _kosmorro/dumper.py:203 _kosmorro/dumper.py:336 -msgid "Rise time" -msgstr "~~~ Translatable ~~~Rise time~~~ End Translatable ~~~" - -#: _kosmorro/dumper.py:204 _kosmorro/dumper.py:338 -msgid "Culmination time" -msgstr "~~~ Translatable ~~~Culmination time~~~ End Translatable ~~~" - -#: _kosmorro/dumper.py:205 _kosmorro/dumper.py:340 -msgid "Set time" -msgstr "~~~ Translatable ~~~Set time~~~ End Translatable ~~~" - -#: _kosmorro/dumper.py:236 -msgid "Moon phase is unavailable for this date." -msgstr "" -"~~~ Translatable ~~~Moon phase is unavailable for this date.~~~ End " -"Translatable ~~~" - -#: _kosmorro/dumper.py:240 _kosmorro/dumper.py:344 -msgid "Moon phase:" -msgstr "~~~ Translatable ~~~Moon phase:~~~ End Translatable ~~~" - -#: _kosmorro/dumper.py:244 -msgid "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}" -msgstr "" -"~~~ Translatable ~~~{next_moon_phase} on {next_moon_phase_date} at " -"{next_moon_phase_time}~~~ End Translatable ~~~" - -#: _kosmorro/dumper.py:308 -msgid "Overview of your sky" -msgstr "~~~ Translatable ~~~Overview of your sky~~~ End Translatable ~~~" - -#: _kosmorro/dumper.py:316 -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}." -msgstr "" -"~~~ Translatable ~~~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}.~~~ End Translatable ~~~" - -#: _kosmorro/dumper.py:326 -msgid "" -"Don't forget to check the weather forecast before you go out with your " -"equipment." -msgstr "" -"~~~ Translatable ~~~Don't forget to check the weather forecast before you go " -"out with your equipment.~~~ End Translatable ~~~" - -#: _kosmorro/dumper.py:333 -msgid "Ephemerides of the day" -msgstr "~~~ Translatable ~~~Ephemerides of the day~~~ End Translatable ~~~" - -#: _kosmorro/dumper.py:342 -msgid "hours" -msgstr "~~~ Translatable ~~~hours~~~ End Translatable ~~~" - -#: _kosmorro/dumper.py:349 -msgid "Expected events" -msgstr "~~~ Translatable ~~~Expected events~~~ End Translatable ~~~" - -#: _kosmorro/dumper.py:503 -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." -msgstr "" -"~~~ Translatable ~~~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.~~~ End Translatable ~~~" - -#: _kosmorro/dumper.py:556 -#, python-format -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" -msgstr "" -"~~~ Translatable ~~~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~~~ End " -"Translatable ~~~" - -#: _kosmorro/exceptions.py:34 -msgid "The date must be between {minimum_date} and {maximum_date}" -msgstr "" -"~~~ Translatable ~~~The date must be between {minimum_date} and " -"{maximum_date}~~~ End Translatable ~~~" - -#: _kosmorro/main.py:62 -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 "" -"~~~ Translatable ~~~Save the planet and paper!\n" -"Consider printing your PDF document only if really necessary, and use the " -"other side of the sheet.~~~ End Translatable ~~~" - -#: _kosmorro/main.py:71 -msgid "" -"PDF output will not contain the ephemerides, because you didn't provide the " -"observation coordinates." -msgstr "" -"~~~ Translatable ~~~PDF output will not contain the ephemerides, because you " -"didn't provide the observation coordinates.~~~ End Translatable ~~~" - -#: _kosmorro/main.py:116 -msgid "The file could not be saved in \"{path}\": {error}" -msgstr "" -"~~~ Translatable ~~~The file could not be saved in \"{path}\": {error}~~~ " -"End Translatable ~~~" - -#: _kosmorro/main.py:130 -msgid "Please provide a file path to export in this format (--output)." -msgstr "" -"~~~ Translatable ~~~Please provide a file path to export in this format (--" -"output).~~~ End Translatable ~~~" - -#: _kosmorro/main.py:163 -msgid "Moon phase can only be displayed between {min_date} and {max_date}" -msgstr "" -"~~~ Translatable ~~~Moon phase can only be displayed between {min_date} and " -"{max_date}~~~ End Translatable ~~~" - -#: _kosmorro/main.py:202 -msgid "" -"Running on Python {python_version} with Kosmorrolib v{kosmorrolib_version}" -msgstr "" -"~~~ Translatable ~~~Running on Python {python_version} with Kosmorrolib " -"v{kosmorrolib_version}~~~ End Translatable ~~~" - -#: _kosmorro/main.py:215 -msgid "" -"Compute the ephemerides and the events for a given date and a given position " -"on Earth." -msgstr "" -"~~~ Translatable ~~~Compute the ephemerides and the events for a given date " -"and a given position on Earth.~~~ End Translatable ~~~" - -#: _kosmorro/main.py:218 -msgid "" -"By default, only the events will be computed for today ({date}).\n" -"To compute also the ephemerides, latitude and longitude arguments are needed." -msgstr "" -"~~~ Translatable ~~~By default, only the events will be computed for today " -"({date}).\n" -"To compute also the ephemerides, latitude and longitude arguments are needed." -"~~~ End Translatable ~~~" - -#: _kosmorro/main.py:232 -msgid "Show the program version" -msgstr "~~~ Translatable ~~~Show the program version~~~ End Translatable ~~~" - -#: _kosmorro/main.py:240 -msgid "The format to output the information to" -msgstr "" -"~~~ Translatable ~~~The format to output the information to~~~ End " -"Translatable ~~~" - -#: _kosmorro/main.py:247 -msgid "" -"The observer's latitude on Earth. Can also be set in the KOSMORRO_LATITUDE " -"environment variable." -msgstr "" -"~~~ Translatable ~~~The observer's latitude on Earth. Can also be set in the " -"KOSMORRO_LATITUDE environment variable.~~~ End Translatable ~~~" - -#: _kosmorro/main.py:257 -msgid "" -"The observer's longitude on Earth. Can also be set in the KOSMORRO_LONGITUDE " -"environment variable." -msgstr "" -"~~~ Translatable ~~~The observer's longitude on Earth. Can also be set in " -"the KOSMORRO_LONGITUDE environment variable.~~~ End Translatable ~~~" - -#: _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 today ({default_date})." -msgstr "" -"~~~ Translatable ~~~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 today ({default_date}).~~~ End " -"Translatable ~~~" - -#: _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." -msgstr "" -"~~~ Translatable ~~~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.~~~ End Translatable ~~~" - -#: _kosmorro/main.py:287 -msgid "Disable the colors in the console." -msgstr "" -"~~~ Translatable ~~~Disable the colors in the console.~~~ End Translatable " -"~~~" - -#: _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 "" -"~~~ Translatable ~~~A file to export the output to. If not given, the " -"standard output is used. This argument is needed for PDF format.~~~ End " -"Translatable ~~~" - -#: _kosmorro/main.py:303 -msgid "" -"Do not generate a graph to represent the rise and set times in the PDF " -"format." -msgstr "" -"~~~ Translatable ~~~Do not generate a graph to represent the rise and set " -"times in the PDF format.~~~ End Translatable ~~~" - -#: _kosmorro/main.py:311 -msgid "Show debugging messages" -msgstr "~~~ Translatable ~~~Show debugging messages~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:11 -#, python-format -msgid "%s is in opposition" -msgstr "~~~ Translatable ~~~%s is in opposition~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:12 -#, python-format -msgid "%s and %s are in conjunction" -msgstr "" -"~~~ Translatable ~~~%s and %s are in conjunction~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:13 -#, python-format -msgid "%s occults %s" -msgstr "~~~ Translatable ~~~%s occults %s~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:15 -#, python-format -msgid "Elongation of %s is maximal" -msgstr "" -"~~~ Translatable ~~~Elongation of %s is maximal~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:18 -#, python-format -msgid "%s is at its perigee" -msgstr "~~~ Translatable ~~~%s is at its perigee~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:19 -#, python-format -msgid "%s is at its apogee" -msgstr "~~~ Translatable ~~~%s is at its apogee~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:35 -msgid "New Moon" -msgstr "~~~ Translatable ~~~New Moon~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:36 -msgid "Waxing Crescent" -msgstr "~~~ Translatable ~~~Waxing Crescent~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:37 -msgid "First Quarter" -msgstr "~~~ Translatable ~~~First Quarter~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:38 -msgid "Waxing Gibbous" -msgstr "~~~ Translatable ~~~Waxing Gibbous~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:39 -msgid "Full Moon" -msgstr "~~~ Translatable ~~~Full Moon~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:40 -msgid "Waning Gibbous" -msgstr "~~~ Translatable ~~~Waning Gibbous~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:41 -msgid "Last Quarter" -msgstr "~~~ Translatable ~~~Last Quarter~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:42 -msgid "Waning Crescent" -msgstr "~~~ Translatable ~~~Waning Crescent~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:53 -msgid "Sun" -msgstr "~~~ Translatable ~~~Sun~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:54 -msgid "Moon" -msgstr "~~~ Translatable ~~~Moon~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:55 -msgid "Mercury" -msgstr "~~~ Translatable ~~~Mercury~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:56 -msgid "Venus" -msgstr "~~~ Translatable ~~~Venus~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:57 -msgid "Mars" -msgstr "~~~ Translatable ~~~Mars~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:58 -msgid "Jupiter" -msgstr "~~~ Translatable ~~~Jupiter~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:59 -msgid "Saturn" -msgstr "~~~ Translatable ~~~Saturn~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:60 -msgid "Uranus" -msgstr "~~~ Translatable ~~~Uranus~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:61 -msgid "Neptune" -msgstr "~~~ Translatable ~~~Neptune~~~ End Translatable ~~~" - -#: _kosmorro/i18n/strings.py:62 -msgid "Pluto" -msgstr "~~~ Translatable ~~~Pluto~~~ End Translatable ~~~" - -#: _kosmorro/i18n/utils.py:27 -msgid "{day_of_week} {month} {day_number}, {year}" -msgstr "" -"~~~ Translatable ~~~{day_of_week} {month} {day_number}, {year}~~~ End " -"Translatable ~~~" - -#: _kosmorro/i18n/utils.py:30 -msgid "{month} {day_number}, {hours}:{minutes}" -msgstr "" -"~~~ Translatable ~~~{month} {day_number}, {hours}:{minutes}~~~ End " -"Translatable ~~~" - -#: _kosmorro/i18n/utils.py:33 -msgid "{month} {day_number}, {year}" -msgstr "" -"~~~ Translatable ~~~{month} {day_number}, {year}~~~ End Translatable ~~~" - -#: _kosmorro/i18n/utils.py:36 -msgid "{hours}:{minutes}" -msgstr "~~~ Translatable ~~~{hours}:{minutes}~~~ End Translatable ~~~" - -#~ msgid "Do you really want to clear Kosmorro's cache? [yN] " -#~ msgstr "" -#~ "~~~ Translatable ~~~Do you really want to clear Kosmorro's cache? [yN] " -#~ "~~~ End Translatable ~~~ " - -#~ msgid "Incorrect answer, cache not cleared." -#~ msgstr "" -#~ "~~~ Translatable ~~~Incorrect answer, cache not cleared.~~~ End " -#~ "Translatable ~~~" - -#~ msgid "Delete all the files from Kosmorro's cache." -#~ msgstr "" -#~ "~~~ Translatable ~~~Delete all the files from Kosmorro's cache.~~~ End " -#~ "Translatable ~~~" - -#~ msgid "Unknown phase" -#~ msgstr "~~~ Translatable ~~~Unknown phase~~~ End Translatable ~~~" - -#~ msgid "Unknown object" -#~ msgstr "~~~ Translatable ~~~Unknown object~~~ End Translatable ~~~" - -#~ msgid "" -#~ "Building PDF was not possible, because some dependencies are not " -#~ "installed.\n" -#~ "Please look at the documentation at http://kosmorro.space for more " -#~ "information." -#~ msgstr "" -#~ "~~~ Translatable ~~~Building PDF was not possible, because some " -#~ "dependencies are not installed.\n" -#~ "Please look at the documentation at http://kosmorro.space for more " -#~ "information.~~~ End Translatable ~~~" diff --git a/kosmorro b/kosmorro deleted file mode 100755 index f6b2a01..0000000 --- a/kosmorro +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python3 - -# Kosmorro - Compute The Next Ephemerides -# Copyright (C) 2019 Jérôme Deuchnord -# -# 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 . - -import sys -from _kosmorro.main import main - -if __name__ == "__main__": - try: - sys.exit(main()) - except KeyboardInterrupt: - sys.exit(1) diff --git a/_kosmorro/__init__.py b/kosmorro/__init__.py similarity index 100% rename from _kosmorro/__init__.py rename to kosmorro/__init__.py diff --git a/_kosmorro/main.py b/kosmorro/__main__.py similarity index 93% rename from _kosmorro/main.py rename to kosmorro/__main__.py index 3bb5231..4bc5458 100644 --- a/_kosmorro/main.py +++ b/kosmorro/__main__.py @@ -20,31 +20,32 @@ import argparse import sys import os.path +from babel.dates import format_date from kosmorrolib import Position, get_ephemerides, get_events, get_moon_phase -from kosmorrolib.__version__ import __version__ as kosmorrolib_version from kosmorrolib.exceptions import OutOfRangeDateError from datetime import date -from termcolor import colored from . import dumper, environment, debug from .date import parse_date from .geolocation import get_position -from .__version__ import __version__ as kosmorro_version +from .utils import KOSMORRO_VERSION, KOSMORROLIB_VERSION, colored, set_colors_activated from .exceptions import ( InvalidOutputFormatError, 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() output_formats = get_dumpers() args = get_args(list(output_formats.keys())) debug.show_debug_messages = args.show_debug_messages output_format = args.format + set_colors_activated(args.colors) + if args.special_action is not None: return 0 if args.special_action() else 1 @@ -181,10 +182,10 @@ def get_information( print( colored( _( - "Moon phase can only be displayed between {min_date} and {max_date}" + "Moon phase can only be computed between {min_date} and {max_date}" ).format( - min_date=error.min_date.strftime(SHORT_DATE_FORMAT), - max_date=error.max_date.strftime(SHORT_DATE_FORMAT), + min_date=format_date(error.min_date, "long"), + max_date=format_date(error.max_date, "long"), ), "yellow", ) @@ -228,12 +229,12 @@ def output_version() -> bool: sys.version_info[1], sys.version_info[2], ) - print("Kosmorro %s" % kosmorro_version) + print("Kosmorro %s" % KOSMORRO_VERSION) print( _( "Running on Python {python_version} " "with Kosmorrolib v{kosmorrolib_version}" - ).format(python_version=python_version, kosmorrolib_version=kosmorrolib_version) + ).format(python_version=python_version, kosmorrolib_version=KOSMORROLIB_VERSION) ) return True @@ -247,10 +248,9 @@ def get_args(output_formats: [str]): "Compute the ephemerides and the events for a given date and a given position on Earth." ), epilog=_( - "By default, only the events will be computed for today ({date}).\n" - "To compute also the ephemerides, latitude and longitude arguments" - " are needed." - ).format(date=today.strftime(dumper.FULL_DATE_FORMAT)), + "By default, only the events will be computed for today.\n" + "To compute also the ephemerides, latitude and longitude arguments are needed." + ), ) parser.add_argument( @@ -291,7 +291,7 @@ def get_args(output_formats: [str]): help=_( "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 today ({default_date})." + "Defaults to current date." ).format(default_date=today.strftime("%Y-%m-%d")), ) parser.add_argument( @@ -336,3 +336,7 @@ def get_args(output_formats: [str]): ) return parser.parse_args() + + +def main(): + sys.exit(run()) diff --git a/_kosmorro/assets/latex/template.tex b/kosmorro/assets/latex/template.tex similarity index 100% rename from _kosmorro/assets/latex/template.tex rename to kosmorro/assets/latex/template.tex diff --git a/_kosmorro/assets/moonphases/png/first-quarter.png b/kosmorro/assets/moonphases/png/first-quarter.png similarity index 100% rename from _kosmorro/assets/moonphases/png/first-quarter.png rename to kosmorro/assets/moonphases/png/first-quarter.png diff --git a/_kosmorro/assets/moonphases/png/full-moon.png b/kosmorro/assets/moonphases/png/full-moon.png similarity index 100% rename from _kosmorro/assets/moonphases/png/full-moon.png rename to kosmorro/assets/moonphases/png/full-moon.png diff --git a/_kosmorro/assets/moonphases/png/last-quarter.png b/kosmorro/assets/moonphases/png/last-quarter.png similarity index 100% rename from _kosmorro/assets/moonphases/png/last-quarter.png rename to kosmorro/assets/moonphases/png/last-quarter.png diff --git a/_kosmorro/assets/moonphases/png/new-moon.png b/kosmorro/assets/moonphases/png/new-moon.png similarity index 100% rename from _kosmorro/assets/moonphases/png/new-moon.png rename to kosmorro/assets/moonphases/png/new-moon.png diff --git a/_kosmorro/assets/moonphases/png/unknown.png b/kosmorro/assets/moonphases/png/unknown.png similarity index 100% rename from _kosmorro/assets/moonphases/png/unknown.png rename to kosmorro/assets/moonphases/png/unknown.png diff --git a/_kosmorro/assets/moonphases/png/waning-crescent.png b/kosmorro/assets/moonphases/png/waning-crescent.png similarity index 100% rename from _kosmorro/assets/moonphases/png/waning-crescent.png rename to kosmorro/assets/moonphases/png/waning-crescent.png diff --git a/_kosmorro/assets/moonphases/png/waning-gibbous.png b/kosmorro/assets/moonphases/png/waning-gibbous.png similarity index 100% rename from _kosmorro/assets/moonphases/png/waning-gibbous.png rename to kosmorro/assets/moonphases/png/waning-gibbous.png diff --git a/_kosmorro/assets/moonphases/png/waxing-crescent.png b/kosmorro/assets/moonphases/png/waxing-crescent.png similarity index 100% rename from _kosmorro/assets/moonphases/png/waxing-crescent.png rename to kosmorro/assets/moonphases/png/waxing-crescent.png diff --git a/_kosmorro/assets/moonphases/png/waxing-gibbous.png b/kosmorro/assets/moonphases/png/waxing-gibbous.png similarity index 100% rename from _kosmorro/assets/moonphases/png/waxing-gibbous.png rename to kosmorro/assets/moonphases/png/waxing-gibbous.png diff --git a/_kosmorro/assets/moonphases/svg/first-quarter.svg b/kosmorro/assets/moonphases/svg/first-quarter.svg similarity index 100% rename from _kosmorro/assets/moonphases/svg/first-quarter.svg rename to kosmorro/assets/moonphases/svg/first-quarter.svg diff --git a/_kosmorro/assets/moonphases/svg/full-moon.svg b/kosmorro/assets/moonphases/svg/full-moon.svg similarity index 100% rename from _kosmorro/assets/moonphases/svg/full-moon.svg rename to kosmorro/assets/moonphases/svg/full-moon.svg diff --git a/_kosmorro/assets/moonphases/svg/last-quarter.svg b/kosmorro/assets/moonphases/svg/last-quarter.svg similarity index 100% rename from _kosmorro/assets/moonphases/svg/last-quarter.svg rename to kosmorro/assets/moonphases/svg/last-quarter.svg diff --git a/_kosmorro/assets/moonphases/svg/new-moon.svg b/kosmorro/assets/moonphases/svg/new-moon.svg similarity index 100% rename from _kosmorro/assets/moonphases/svg/new-moon.svg rename to kosmorro/assets/moonphases/svg/new-moon.svg diff --git a/_kosmorro/assets/moonphases/svg/unknown.svg b/kosmorro/assets/moonphases/svg/unknown.svg similarity index 100% rename from _kosmorro/assets/moonphases/svg/unknown.svg rename to kosmorro/assets/moonphases/svg/unknown.svg diff --git a/_kosmorro/assets/moonphases/svg/waning-crescent.svg b/kosmorro/assets/moonphases/svg/waning-crescent.svg similarity index 100% rename from _kosmorro/assets/moonphases/svg/waning-crescent.svg rename to kosmorro/assets/moonphases/svg/waning-crescent.svg diff --git a/_kosmorro/assets/moonphases/svg/waning-gibbous.svg b/kosmorro/assets/moonphases/svg/waning-gibbous.svg similarity index 100% rename from _kosmorro/assets/moonphases/svg/waning-gibbous.svg rename to kosmorro/assets/moonphases/svg/waning-gibbous.svg diff --git a/_kosmorro/assets/moonphases/svg/waxing-crescent.svg b/kosmorro/assets/moonphases/svg/waxing-crescent.svg similarity index 100% rename from _kosmorro/assets/moonphases/svg/waxing-crescent.svg rename to kosmorro/assets/moonphases/svg/waxing-crescent.svg diff --git a/_kosmorro/assets/moonphases/svg/waxing-gibbous.svg b/kosmorro/assets/moonphases/svg/waxing-gibbous.svg similarity index 100% rename from _kosmorro/assets/moonphases/svg/waxing-gibbous.svg rename to kosmorro/assets/moonphases/svg/waxing-gibbous.svg diff --git a/_kosmorro/i18n/__init__.py b/kosmorro/assets/pdf/kosmorro.sty similarity index 100% rename from _kosmorro/i18n/__init__.py rename to kosmorro/assets/pdf/kosmorro.sty diff --git a/kosmorro/assets/pdf/template.tex b/kosmorro/assets/pdf/template.tex new file mode 100644 index 0000000..e69de29 diff --git a/_kosmorro/assets/png/kosmorro-icon-white.png b/kosmorro/assets/png/kosmorro-icon-white.png similarity index 100% rename from _kosmorro/assets/png/kosmorro-icon-white.png rename to kosmorro/assets/png/kosmorro-icon-white.png diff --git a/_kosmorro/assets/png/kosmorro-icon.png b/kosmorro/assets/png/kosmorro-icon.png similarity index 100% rename from _kosmorro/assets/png/kosmorro-icon.png rename to kosmorro/assets/png/kosmorro-icon.png diff --git a/_kosmorro/assets/png/kosmorro-logo-white.png b/kosmorro/assets/png/kosmorro-logo-white.png similarity index 100% rename from _kosmorro/assets/png/kosmorro-logo-white.png rename to kosmorro/assets/png/kosmorro-logo-white.png diff --git a/_kosmorro/assets/png/kosmorro-logo.png b/kosmorro/assets/png/kosmorro-logo.png similarity index 100% rename from _kosmorro/assets/png/kosmorro-logo.png rename to kosmorro/assets/png/kosmorro-logo.png diff --git a/_kosmorro/assets/svg/kosmorro-icon-white.svg b/kosmorro/assets/svg/kosmorro-icon-white.svg similarity index 100% rename from _kosmorro/assets/svg/kosmorro-icon-white.svg rename to kosmorro/assets/svg/kosmorro-icon-white.svg diff --git a/_kosmorro/assets/svg/kosmorro-icon.svg b/kosmorro/assets/svg/kosmorro-icon.svg similarity index 100% rename from _kosmorro/assets/svg/kosmorro-icon.svg rename to kosmorro/assets/svg/kosmorro-icon.svg diff --git a/_kosmorro/assets/svg/kosmorro-logo-white.svg b/kosmorro/assets/svg/kosmorro-logo-white.svg similarity index 100% rename from _kosmorro/assets/svg/kosmorro-logo-white.svg rename to kosmorro/assets/svg/kosmorro-logo-white.svg diff --git a/_kosmorro/assets/svg/kosmorro-logo.svg b/kosmorro/assets/svg/kosmorro-logo.svg similarity index 100% rename from _kosmorro/assets/svg/kosmorro-logo.svg rename to kosmorro/assets/svg/kosmorro-logo.svg diff --git a/_kosmorro/date.py b/kosmorro/date.py similarity index 97% rename from _kosmorro/date.py rename to kosmorro/date.py index 5d25a71..3018fb6 100644 --- a/_kosmorro/date.py +++ b/kosmorro/date.py @@ -5,7 +5,7 @@ import re from dateutil.relativedelta import relativedelta from datetime import date -from _kosmorro.i18n.utils import _ +from kosmorro.i18n.utils import _ def parse_date(date_arg: str) -> date: diff --git a/_kosmorro/debug.py b/kosmorro/debug.py similarity index 100% rename from _kosmorro/debug.py rename to kosmorro/debug.py diff --git a/_kosmorro/dumper.py b/kosmorro/dumper.py similarity index 83% rename from _kosmorro/dumper.py rename to kosmorro/dumper.py index 4aebc5d..5d5c7e3 100644 --- a/_kosmorro/dumper.py +++ b/kosmorro/dumper.py @@ -25,20 +25,21 @@ import subprocess import shutil from pathlib import Path +from babel.dates import format_date, format_time from tabulate import tabulate from termcolor import colored -from kosmorrolib import AsterEphemerides, Event +from kosmorrolib import AsterEphemerides, Event, EventType from kosmorrolib.model import ASTERS, MoonPhase -from .i18n.utils import _, FULL_DATE_FORMAT, SHORT_DATETIME_FORMAT, TIME_FORMAT +from .i18n.utils import _ from .i18n import strings -from .__version__ import __version__ as version from .exceptions import ( CompileError, UnavailableFeatureError as KosmorroUnavailableFeatureError, ) from .debug import debug_print +from .utils import KOSMORRO_VERSION class Dumper(ABC): @@ -69,7 +70,7 @@ class Dumper(ABC): self.show_graph = show_graph def get_date_as_string(self, capitalized: bool = False) -> str: - date = self.date.strftime(FULL_DATE_FORMAT) + date = format_date(self.date, "full") if capitalized: return "".join([date[0].upper(), date[1:]]) @@ -89,6 +90,15 @@ class Dumper(ABC): class JsonDumper(Dumper): + SUPPORTED_EVENTS = [ + EventType.OPPOSITION, + EventType.CONJUNCTION, + EventType.OCCULTATION, + EventType.MAXIMAL_ELONGATION, + EventType.PERIGEE, + EventType.APOGEE, + ] + def to_string(self): return json.dumps( { @@ -96,11 +106,18 @@ class JsonDumper(Dumper): ephemeris.serialize() for ephemeris in self.ephemerides ], "moon_phase": self.moon_phase.serialize(), - "events": [event.serialize() for event in self.events], + "events": list(self.get_events()), }, indent=4, ) + def get_events(self) -> [{str: any}]: + for event in self.events: + if event.event_type not in self.SUPPORTED_EVENTS: + continue + + yield event.serialize() + class TextDumper(Dumper): def to_string(self): @@ -164,35 +181,21 @@ class TextDumper(Dumper): name = self.style(object_name, "th") - if ephemeris.rise_time is not None: - time_fmt = ( - TIME_FORMAT - if ephemeris.rise_time.day == self.date.day - else SHORT_DATETIME_FORMAT - ) - planet_rise = ephemeris.rise_time.strftime(time_fmt) - else: - planet_rise = "-" - - if ephemeris.culmination_time is not None: - time_fmt = ( - TIME_FORMAT - if ephemeris.culmination_time.day == self.date.day - else SHORT_DATETIME_FORMAT - ) - planet_culmination = ephemeris.culmination_time.strftime(time_fmt) - else: - planet_culmination = "-" - - if ephemeris.set_time is not None: - time_fmt = ( - TIME_FORMAT - if ephemeris.set_time.day == self.date.day - else SHORT_DATETIME_FORMAT - ) - planet_set = ephemeris.set_time.strftime(time_fmt) - else: - planet_set = "-" + planet_rise = ( + "-" + if ephemeris.rise_time is None + else format_time(ephemeris.rise_time, "short") + ) + planet_culmination = ( + "-" + if ephemeris.culmination_time is None + else format_time(ephemeris.culmination_time, "short") + ) + planet_set = ( + "-" + if ephemeris.set_time is None + else format_time(ephemeris.set_time, "short") + ) data.append([name, planet_rise, planet_culmination, planet_set]) @@ -217,14 +220,9 @@ class TextDumper(Dumper): if description is None: continue - time_fmt = ( - TIME_FORMAT - if event.start_time.day == self.date.day - else SHORT_DATETIME_FORMAT - ) data.append( [ - self.style(event.start_time.strftime(time_fmt), "th"), + self.style(format_time(event.start_time, "short"), "th"), description, ] ) @@ -245,8 +243,8 @@ class TextDumper(Dumper): "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}" ).format( next_moon_phase=_(strings.from_moon_phase(moon_phase.get_next_phase())), - next_moon_phase_date=moon_phase.next_phase_date.strftime(FULL_DATE_FORMAT), - next_moon_phase_time=moon_phase.next_phase_date.strftime(TIME_FORMAT), + next_moon_phase_date=format_date(moon_phase.next_phase_date, "full"), + next_moon_phase_time=format_time(moon_phase.next_phase_date, "short"), ) return "\n".join([current_moon_phase, new_moon_phase]) @@ -309,7 +307,7 @@ class LatexDumper(Dumper): document = document.replace( "+++CURRENT-DATE+++", datetime.datetime.now().isoformat() ) - document = document.replace("+++KOSMORRO-VERSION+++", version) + document = document.replace("+++KOSMORRO-VERSION+++", KOSMORRO_VERSION) document = document.replace("+++KOSMORRO-LOGO+++", kosmorro_logo_path) document = document.replace("+++DOCUMENT-TITLE+++", _("Overview of your sky")) document = document.replace( @@ -373,35 +371,21 @@ class LatexDumper(Dumper): if self.ephemerides is not None: for ephemeris in self.ephemerides: - if ephemeris.rise_time is not None: - time_fmt = ( - TIME_FORMAT - if ephemeris.rise_time.day == self.date.day - else SHORT_DATETIME_FORMAT - ) - aster_rise = ephemeris.rise_time.strftime(time_fmt) - else: - aster_rise = "-" - - if ephemeris.culmination_time is not None: - time_fmt = ( - TIME_FORMAT - if ephemeris.culmination_time.day == self.date.day - else SHORT_DATETIME_FORMAT - ) - aster_culmination = ephemeris.culmination_time.strftime(time_fmt) - else: - aster_culmination = "-" - - if ephemeris.set_time is not None: - time_fmt = ( - TIME_FORMAT - if ephemeris.set_time.day == self.date.day - else SHORT_DATETIME_FORMAT - ) - aster_set = ephemeris.set_time.strftime(time_fmt) - else: - aster_set = "-" + aster_rise = ( + "-" + if ephemeris.rise_time is None + else format_time(ephemeris.rise_time, "short") + ) + aster_culmination = ( + "-" + if ephemeris.culmination_time is None + else format_time(ephemeris.culmination_time, "short") + ) + aster_set = ( + "-" + if ephemeris.set_time is None + else format_time(ephemeris.set_time, "short") + ) if not self.show_graph: object_name = strings.from_object(ephemeris.object.identifier) @@ -465,7 +449,7 @@ class LatexDumper(Dumper): continue latex.append( - r"\event{%s}{%s}" % (event.start_time.strftime(TIME_FORMAT), event_name) + r"\event{%s}{%s}" % (format_time(event.start_time, "short"), event_name) ) return "".join(latex) diff --git a/_kosmorro/environment.py b/kosmorro/environment.py similarity index 100% rename from _kosmorro/environment.py rename to kosmorro/environment.py diff --git a/_kosmorro/exceptions.py b/kosmorro/exceptions.py similarity index 90% rename from _kosmorro/exceptions.py rename to kosmorro/exceptions.py index 4c36c3e..c5e5ca3 100644 --- a/_kosmorro/exceptions.py +++ b/kosmorro/exceptions.py @@ -17,7 +17,8 @@ # along with this program. If not, see . from datetime import date -from _kosmorro.i18n.utils import _, SHORT_DATE_FORMAT +from babel.dates import format_date +from kosmorro.i18n.utils import _, SHORT_DATE_FORMAT class UnavailableFeatureError(RuntimeError): @@ -34,8 +35,8 @@ class OutOfRangeDateError(RuntimeError): self.msg = _( "The date must be between {minimum_date} and {maximum_date}" ).format( - minimum_date=min_date.strftime(SHORT_DATE_FORMAT), - maximum_date=max_date.strftime(SHORT_DATE_FORMAT), + minimum_date=format_date(min_date, "long"), + maximum_date=format_date(max_date, "long"), ) diff --git a/_kosmorro/geolocation.py b/kosmorro/geolocation.py similarity index 100% rename from _kosmorro/geolocation.py rename to kosmorro/geolocation.py diff --git a/kosmorro/i18n/__init__.py b/kosmorro/i18n/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/_kosmorro/i18n/strings.py b/kosmorro/i18n/strings.py similarity index 100% rename from _kosmorro/i18n/strings.py rename to kosmorro/i18n/strings.py diff --git a/_kosmorro/i18n/utils.py b/kosmorro/i18n/utils.py similarity index 100% rename from _kosmorro/i18n/utils.py rename to kosmorro/i18n/utils.py diff --git a/_kosmorro/locales/de/LC_MESSAGES/messages.po b/kosmorro/locales/de/LC_MESSAGES/messages.po similarity index 78% rename from _kosmorro/locales/de/LC_MESSAGES/messages.po rename to kosmorro/locales/de/LC_MESSAGES/messages.po index 3bcf3fb..90477b3 100644 --- a/_kosmorro/locales/de/LC_MESSAGES/messages.po +++ b/kosmorro/locales/de/LC_MESSAGES/messages.po @@ -2,14 +2,14 @@ # Copyright (C) 2021 ORGANIZATION # This file is distributed under the same license as the kosmorro project. # FIRST AUTHOR , 2021. -# Jérôme Deuchnord , 2021. +# Jérôme Deuchnord , 2021, 2022. msgid "" msgstr "" "Project-Id-Version: kosmorro 0.9.0\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-11-20 12:12+0100\n" -"PO-Revision-Date: 2021-06-22 08:33+0000\n" -"Last-Translator: Jérôme Deuchnord \n" +"POT-Creation-Date: 2022-03-19 13:28+0100\n" +"PO-Revision-Date: 2022-03-19 17:50+0000\n" +"Last-Translator: Anonymous \n" "Language-Team: German \n" "Language: de\n" @@ -17,123 +17,10 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.7.1-dev\n" +"X-Generator: Weblate 4.12-dev\n" "Generated-By: Babel 2.9.0\n" -#: _kosmorro/date.py:17 -msgid "The date {date} is not valid: {error}" -msgstr "Das Datum {date} ist nicht gültig: {error}" - -#: _kosmorro/date.py:39 -msgid "" -"The date {date} does not match the required YYYY-MM-DD format or the offset " -"format." -msgstr "" -"Das Datum {date} entspricht nicht dem erforderlichen Format JJJJ-MM-TT oder " -"dem Offset-Format." - -#: _kosmorro/dumper.py:120 -msgid "Expected events:" -msgstr "Erwartete Ereignisse:" - -#: _kosmorro/dumper.py:127 -msgid "Note: All the hours are given in UTC." -msgstr "Hinweis: alle Stunden werden in UTC angegeben." - -#: _kosmorro/dumper.py:134 -msgid "Note: All the hours are given in the UTC{offset} timezone." -msgstr "Hinweis: Alle Stunden werden in der UTC{offset}-Zeitzone angegeben." - -#: _kosmorro/dumper.py:202 _kosmorro/dumper.py:335 -msgid "Object" -msgstr "Gestirn" - -#: _kosmorro/dumper.py:203 _kosmorro/dumper.py:336 -msgid "Rise time" -msgstr "Aufgangszeit" - -#: _kosmorro/dumper.py:204 _kosmorro/dumper.py:338 -msgid "Culmination time" -msgstr "Höhepunkt" - -#: _kosmorro/dumper.py:205 _kosmorro/dumper.py:340 -msgid "Set time" -msgstr "Untergangszeit" - -#: _kosmorro/dumper.py:236 -msgid "Moon phase is unavailable for this date." -msgstr "Die Mondphase ist für dieses Datum nicht verfügbar." - -#: _kosmorro/dumper.py:240 _kosmorro/dumper.py:344 -msgid "Moon phase:" -msgstr "Mondphase:" - -#: _kosmorro/dumper.py:244 -msgid "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}" -msgstr "{next_moon_phase} am {next_moon_phase_date} um {next_moon_phase_time}" - -#: _kosmorro/dumper.py:308 -msgid "Overview of your sky" -msgstr "Übersicht über Ihren Himmel" - -#: _kosmorro/dumper.py:316 -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}." -msgstr "" -"Dieses Dokument fasst die Ephemeriden und die Ereignisse von {date} " -"zusammen. Es soll Ihnen bei der Vorbereitung Ihrer Beobachtungssitzung " -"helfen. Alle Stunden sind in der Zeitzone {timezone} angegeben." - -#: _kosmorro/dumper.py:326 -msgid "" -"Don't forget to check the weather forecast before you go out with your " -"equipment." -msgstr "" -"Vergessen Sie nicht, die Wettervorhersage zu prüfen, bevor Sie mit Ihrer " -"Ausrüstung hinausfahren." - -#: _kosmorro/dumper.py:333 -msgid "Ephemerides of the day" -msgstr "Ephemeriden des Tages" - -#: _kosmorro/dumper.py:342 -msgid "hours" -msgstr "Uhren" - -#: _kosmorro/dumper.py:349 -msgid "Expected events" -msgstr "Erwartete Ereignisse" - -#: _kosmorro/dumper.py:503 -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." -msgstr "" -"Konnte nicht das PDF-Dokument herstellen, weil Abhängigkeiten nicht " -"installiert werden.\n" -"Bitte die Dokumentation auf https://kosmorro.space/cli/generate-pdf/ für " -"weitere Informationen." - -#: _kosmorro/dumper.py:556 -#, python-format -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" -msgstr "" -"Bei der Kompilierung der PDF ist ein Fehler aufgetreten.\n" -"Bitte öffnen Sie ein Issue unter https://github.com/Kosmorro/kosmorro/issues " -"und teilen Sie den Inhalt der Log-Datei unter /tmp/kosmorro-%s.log" - -#: _kosmorro/exceptions.py:34 -msgid "The date must be between {minimum_date} and {maximum_date}" -msgstr "" -"Das Datum muss zwischen dem {minimum_date} und dem {maximum_date} liegen" - -#: _kosmorro/main.py:62 +#: kosmorro/__main__.py:63 msgid "" "Save the planet and paper!\n" "Consider printing your PDF document only if really necessary, and use the " @@ -143,7 +30,7 @@ msgstr "" "Drucken Sie das PDF-Dokument aus, nur wenn Sie wirklich brauchen, und nutzen " "Sie das Verso." -#: _kosmorro/main.py:71 +#: kosmorro/__main__.py:72 msgid "" "PDF output will not contain the ephemerides, because you didn't provide the " "observation coordinates." @@ -151,29 +38,28 @@ msgstr "" "Die PDF-Ausgabe wird die Ephemeriden nicht enthalten, weil Sie die " "Beobachtungskoordinate nicht angegeben haben." -#: _kosmorro/main.py:116 +#: kosmorro/__main__.py:117 msgid "The file could not be saved in \"{path}\": {error}" msgstr "Die Ausgabe in \"{path}\" konnte nicht gespeichert werden: {error}" -#: _kosmorro/main.py:130 +#: kosmorro/__main__.py:131 msgid "Please provide a file path to export in this format (--output)." msgstr "" "Bitte geben Sie einen Dateipfad an, der in diesem Format exportiert werden " "soll (--output)." -#: _kosmorro/main.py:163 -msgid "Moon phase can only be displayed between {min_date} and {max_date}" +#: kosmorro/__main__.py:164 +msgid "Moon phase can only be computed between {min_date} and {max_date}" msgstr "" -"Die Mondphase kann nur zwischen dem {min_date} und dem {max_date} angezeigt " -"werden" +"Die Mondphase kann nur zwischen {min_date} und {max_date} berechnet werden" -#: _kosmorro/main.py:202 +#: kosmorro/__main__.py:203 msgid "" "Running on Python {python_version} with Kosmorrolib v{kosmorrolib_version}" msgstr "" "Mit Python {python_version} und Kosmorrolib v{kosmorrolib_version} ausführt" -#: _kosmorro/main.py:215 +#: kosmorro/__main__.py:216 msgid "" "Compute the ephemerides and the events for a given date and a given position " "on Earth." @@ -181,25 +67,24 @@ msgstr "" "Berechnet die Ephemeriden und die Ereignisse für die angegeben Datum und " "Position auf der Erde." -#: _kosmorro/main.py:218 +#: kosmorro/__main__.py:219 msgid "" -"By default, only the events will be computed for today ({date}).\n" +"By default, only the events will be computed for today.\n" "To compute also the ephemerides, latitude and longitude arguments are needed." msgstr "" -"Nur werden standardmäßig die Ereignisse für den heutigen Tag ({date}) " -"berechnet.\n" +"Nur werden standardmäßig die Ereignisse für den heutigen Tag berechnet.\n" "Um auch die Ephemeriden zu berechnen, werden die Breiten- und Längengrad " "benötigt." -#: _kosmorro/main.py:232 +#: kosmorro/__main__.py:232 msgid "Show the program version" msgstr "Stellt die Version des Programms aus" -#: _kosmorro/main.py:240 +#: kosmorro/__main__.py:240 msgid "The format to output the information to" msgstr "Die Datenstruktur der Ausgabe" -#: _kosmorro/main.py:247 +#: kosmorro/__main__.py:247 msgid "" "The observer's latitude on Earth. Can also be set in the KOSMORRO_LATITUDE " "environment variable." @@ -207,7 +92,7 @@ msgstr "" "Der Breitengrad des Beobachters auf der Erde. Kann auch in der " "Umgebungsvariablen KOSMORRO_LATITUDE gesetzt werden." -#: _kosmorro/main.py:257 +#: kosmorro/__main__.py:257 msgid "" "The observer's longitude on Earth. Can also be set in the KOSMORRO_LONGITUDE " "environment variable." @@ -215,17 +100,17 @@ msgstr "" "Der Längengrad des Beobachters auf der Erde. Kann auch in der " "Umgebungsvariablen KOSMORRO_LONGITUDE gesetzt werden." -#: _kosmorro/main.py:267 +#: 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 today ({default_date})." +"numbers). Defaults to current date." msgstr "" "Das Datum, für das die Ephemeriden berechnet werden müssen. Kann im Format " "JJJJ-MM-TT oder als Intervall im Format \"[+-]JyMmTd\" (wo J, M und T Zahlen " -"sind) angegeben. Standardwert ist das aktuelle Datum ({default_date})." +"sind) angegeben. Standardwert ist das aktuelle Datum." -#: _kosmorro/main.py:278 +#: 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." @@ -234,11 +119,11 @@ msgstr "" "oder -3 für UTC-3). Kann auch in der Umgebungsvariablen KOSMORRO_TIMEZONE " "gesetzt werden." -#: _kosmorro/main.py:287 +#: kosmorro/__main__.py:287 msgid "Disable the colors in the console." msgstr "Deaktiviert die Farben in der Konsole." -#: _kosmorro/main.py:294 +#: 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." @@ -247,7 +132,7 @@ msgstr "" "die Standardausgabe verwendet. Dieses Argument wird für das PDF-Format " "benötigt." -#: _kosmorro/main.py:303 +#: kosmorro/__main__.py:303 msgid "" "Do not generate a graph to represent the rise and set times in the PDF " "format." @@ -255,125 +140,238 @@ msgstr "" "Keine Grafik zur Darstellung der Anstiegs- und Abfallzeiten im PDF-Format " "generieren." -#: _kosmorro/main.py:311 +#: kosmorro/__main__.py:311 msgid "Show debugging messages" msgstr "Fehlerdiagnosemeldungen anzeigen" -#: _kosmorro/i18n/strings.py:11 +#: kosmorro/date.py:17 +msgid "The date {date} is not valid: {error}" +msgstr "Das Datum {date} ist nicht gültig: {error}" + +#: kosmorro/date.py:39 +msgid "" +"The date {date} does not match the required YYYY-MM-DD format or the offset " +"format." +msgstr "" +"Das Datum {date} entspricht nicht dem erforderlichen Format JJJJ-MM-TT oder " +"dem Offset-Format." + +#: kosmorro/dumper.py:137 +msgid "Expected events:" +msgstr "Erwartete Ereignisse:" + +#: kosmorro/dumper.py:144 +msgid "Note: All the hours are given in UTC." +msgstr "Hinweis: alle Stunden werden in UTC angegeben." + +#: kosmorro/dumper.py:151 +msgid "Note: All the hours are given in the UTC{offset} timezone." +msgstr "Hinweis: Alle Stunden werden in der UTC{offset}-Zeitzone angegeben." + +#: kosmorro/dumper.py:205 kosmorro/dumper.py:333 +msgid "Object" +msgstr "Gestirn" + +#: kosmorro/dumper.py:206 kosmorro/dumper.py:334 +msgid "Rise time" +msgstr "Aufgangszeit" + +#: kosmorro/dumper.py:207 kosmorro/dumper.py:336 +msgid "Culmination time" +msgstr "Höhepunkt" + +#: kosmorro/dumper.py:208 kosmorro/dumper.py:338 +msgid "Set time" +msgstr "Untergangszeit" + +#: kosmorro/dumper.py:234 +msgid "Moon phase is unavailable for this date." +msgstr "Die Mondphase ist für dieses Datum nicht verfügbar." + +#: kosmorro/dumper.py:238 kosmorro/dumper.py:342 +msgid "Moon phase:" +msgstr "Mondphase:" + +#: kosmorro/dumper.py:242 +msgid "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}" +msgstr "{next_moon_phase} am {next_moon_phase_date} um {next_moon_phase_time}" + +#: kosmorro/dumper.py:306 +msgid "Overview of your sky" +msgstr "Übersicht über Ihren Himmel" + +#: kosmorro/dumper.py:314 +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}." +msgstr "" +"Dieses Dokument fasst die Ephemeriden und die Ereignisse von {date} " +"zusammen. Es soll Ihnen bei der Vorbereitung Ihrer Beobachtungssitzung " +"helfen. Alle Stunden sind in der Zeitzone {timezone} angegeben." + +#: kosmorro/dumper.py:324 +msgid "" +"Don't forget to check the weather forecast before you go out with your " +"equipment." +msgstr "" +"Vergessen Sie nicht, die Wettervorhersage zu prüfen, bevor Sie mit Ihrer " +"Ausrüstung hinausfahren." + +#: kosmorro/dumper.py:331 +msgid "Ephemerides of the day" +msgstr "Ephemeriden des Tages" + +#: kosmorro/dumper.py:340 +msgid "hours" +msgstr "Uhren" + +#: kosmorro/dumper.py:347 +msgid "Expected events" +msgstr "Erwartete Ereignisse" + +#: 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." +msgstr "" +"Konnte nicht das PDF-Dokument herstellen, weil Abhängigkeiten nicht " +"installiert werden.\n" +"Bitte die Dokumentation auf https://kosmorro.space/cli/generate-pdf/ für " +"weitere Informationen." + +#: kosmorro/dumper.py:540 +#, python-format +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" +msgstr "" +"Bei der Kompilierung der PDF ist ein Fehler aufgetreten.\n" +"Bitte öffnen Sie ein Issue unter https://github.com/Kosmorro/kosmorro/issues " +"und teilen Sie den Inhalt der Log-Datei unter /tmp/kosmorro-%s.log" + +#: kosmorro/exceptions.py:35 +msgid "The date must be between {minimum_date} and {maximum_date}" +msgstr "" +"Das Datum muss zwischen dem {minimum_date} und dem {maximum_date} liegen" + +#: kosmorro/i18n/strings.py:11 #, python-format msgid "%s is in opposition" msgstr "%s steht in Opposition" -#: _kosmorro/i18n/strings.py:12 +#: kosmorro/i18n/strings.py:12 #, python-format msgid "%s and %s are in conjunction" msgstr "Konjunktion zwischen %s und %s" -#: _kosmorro/i18n/strings.py:13 +#: kosmorro/i18n/strings.py:13 #, python-format msgid "%s occults %s" msgstr "%s bedeckt %s" -#: _kosmorro/i18n/strings.py:15 +#: kosmorro/i18n/strings.py:15 #, python-format msgid "Elongation of %s is maximal" msgstr "Die Elongation von %s ist maximal" -#: _kosmorro/i18n/strings.py:18 +#: kosmorro/i18n/strings.py:18 #, python-format msgid "%s is at its perigee" msgstr "%s befindet sich am Perigäum" -#: _kosmorro/i18n/strings.py:19 +#: kosmorro/i18n/strings.py:19 #, python-format msgid "%s is at its apogee" msgstr "%s steht auf seinem Apogäum" -#: _kosmorro/i18n/strings.py:35 +#: kosmorro/i18n/strings.py:35 msgid "New Moon" msgstr "Neumond" -#: _kosmorro/i18n/strings.py:36 +#: kosmorro/i18n/strings.py:36 msgid "Waxing Crescent" msgstr "zunehmende Sichel" -#: _kosmorro/i18n/strings.py:37 +#: kosmorro/i18n/strings.py:37 msgid "First Quarter" msgstr "Erstes Viertel" -#: _kosmorro/i18n/strings.py:38 +#: kosmorro/i18n/strings.py:38 msgid "Waxing Gibbous" msgstr "zweites Viertel" -#: _kosmorro/i18n/strings.py:39 +#: kosmorro/i18n/strings.py:39 msgid "Full Moon" msgstr "Vollmond" -#: _kosmorro/i18n/strings.py:40 +#: kosmorro/i18n/strings.py:40 msgid "Waning Gibbous" msgstr "drittes Viertel" -#: _kosmorro/i18n/strings.py:41 +#: kosmorro/i18n/strings.py:41 msgid "Last Quarter" msgstr "Letztes Viertel" -#: _kosmorro/i18n/strings.py:42 +#: kosmorro/i18n/strings.py:42 msgid "Waning Crescent" msgstr "abnehmende Sichel" -#: _kosmorro/i18n/strings.py:53 +#: kosmorro/i18n/strings.py:53 msgid "Sun" msgstr "Sohne" -#: _kosmorro/i18n/strings.py:54 +#: kosmorro/i18n/strings.py:54 msgid "Moon" msgstr "Mond" -#: _kosmorro/i18n/strings.py:55 +#: kosmorro/i18n/strings.py:55 msgid "Mercury" msgstr "Merkur" -#: _kosmorro/i18n/strings.py:56 +#: kosmorro/i18n/strings.py:56 msgid "Venus" msgstr "Venus" -#: _kosmorro/i18n/strings.py:57 +#: kosmorro/i18n/strings.py:57 msgid "Mars" msgstr "Mars" -#: _kosmorro/i18n/strings.py:58 +#: kosmorro/i18n/strings.py:58 msgid "Jupiter" msgstr "Jupiter" -#: _kosmorro/i18n/strings.py:59 +#: kosmorro/i18n/strings.py:59 msgid "Saturn" msgstr "Saturn" -#: _kosmorro/i18n/strings.py:60 +#: kosmorro/i18n/strings.py:60 msgid "Uranus" msgstr "Uranus" -#: _kosmorro/i18n/strings.py:61 +#: kosmorro/i18n/strings.py:61 msgid "Neptune" msgstr "Neptun" -#: _kosmorro/i18n/strings.py:62 +#: kosmorro/i18n/strings.py:62 msgid "Pluto" msgstr "Pluto" -#: _kosmorro/i18n/utils.py:27 +#: kosmorro/i18n/utils.py:27 msgid "{day_of_week} {month} {day_number}, {year}" msgstr "{day_of_week}, den {day_number}. {month} {year}" -#: _kosmorro/i18n/utils.py:30 +#: kosmorro/i18n/utils.py:30 msgid "{month} {day_number}, {hours}:{minutes}" msgstr "{day_number}. {month}, {hours}:{minutes}" -#: _kosmorro/i18n/utils.py:33 +#: kosmorro/i18n/utils.py:33 msgid "{month} {day_number}, {year}" msgstr "{day_number}. {month} {year}" -#: _kosmorro/i18n/utils.py:36 +#: kosmorro/i18n/utils.py:36 msgid "{hours}:{minutes}" msgstr "{hours}:{minutes}" diff --git a/_kosmorro/locales/es/LC_MESSAGES/messages.po b/kosmorro/locales/es/LC_MESSAGES/messages.po similarity index 79% rename from _kosmorro/locales/es/LC_MESSAGES/messages.po rename to kosmorro/locales/es/LC_MESSAGES/messages.po index e752ff1..7058b19 100644 --- a/_kosmorro/locales/es/LC_MESSAGES/messages.po +++ b/kosmorro/locales/es/LC_MESSAGES/messages.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: kosmorro 0.9.0\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-11-20 12:12+0100\n" -"PO-Revision-Date: 2021-05-16 09:25+0000\n" +"POT-Creation-Date: 2022-03-19 13:28+0100\n" +"PO-Revision-Date: 2022-03-19 17:51+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Spanish \n" @@ -17,126 +17,10 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.7-dev\n" +"X-Generator: Weblate 4.12-dev\n" "Generated-By: Babel 2.9.0\n" -#: _kosmorro/date.py:17 -msgid "The date {date} is not valid: {error}" -msgstr "La fecha no es válida: {error}" - -#: _kosmorro/date.py:39 -msgid "" -"The date {date} does not match the required YYYY-MM-DD format or the offset " -"format." -msgstr "" -"La fecha {fecha} no coincide con el formato requerido AAAA-MM-DD o el " -"formato de desplazamiento." - -#: _kosmorro/dumper.py:120 -msgid "Expected events:" -msgstr "Eventos esperados:" - -#: _kosmorro/dumper.py:127 -msgid "Note: All the hours are given in UTC." -msgstr "Nota: Todas las horas se dan en UTC." - -#: _kosmorro/dumper.py:134 -msgid "Note: All the hours are given in the UTC{offset} timezone." -msgstr "Nota: Todas las horas se dan en la zona horaria UTC." - -#: _kosmorro/dumper.py:202 _kosmorro/dumper.py:335 -msgid "Object" -msgstr "Objeto" - -#: _kosmorro/dumper.py:203 _kosmorro/dumper.py:336 -msgid "Rise time" -msgstr "Tiempo de ascenso" - -#: _kosmorro/dumper.py:204 _kosmorro/dumper.py:338 -msgid "Culmination time" -msgstr "Tiempo de culminación" - -#: _kosmorro/dumper.py:205 _kosmorro/dumper.py:340 -#, fuzzy -msgid "Set time" -msgstr "Poner la hora" - -#: _kosmorro/dumper.py:236 -msgid "Moon phase is unavailable for this date." -msgstr "La fase lunar no está disponible para esta fecha." - -#: _kosmorro/dumper.py:240 _kosmorro/dumper.py:344 -msgid "Moon phase:" -msgstr "Fase lunar:" - -#: _kosmorro/dumper.py:244 -#, fuzzy -msgid "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}" -msgstr "" -"en la {fase lunar siguiente} en la {fase lunar siguiente} a la {fase lunar " -"siguiente}" - -#: _kosmorro/dumper.py:308 -msgid "Overview of your sky" -msgstr "" - -#: _kosmorro/dumper.py:316 -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}." -msgstr "" -"Este documento resume las efemérides y los eventos de {fecha}. Su objetivo " -"es ayudarle a preparar su sesión de observación. Todas las horas están dadas " -"en {zona horaria}." - -#: _kosmorro/dumper.py:326 -msgid "" -"Don't forget to check the weather forecast before you go out with your " -"equipment." -msgstr "" -"No olvides comprobar el pronóstico del tiempo antes de salir con tu equipo." - -#: _kosmorro/dumper.py:333 -msgid "Ephemerides of the day" -msgstr "Las efemérides del día" - -#: _kosmorro/dumper.py:342 -msgid "hours" -msgstr "horas" - -#: _kosmorro/dumper.py:349 -msgid "Expected events" -msgstr "Eventos esperados" - -#: _kosmorro/dumper.py:503 -#, fuzzy -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." -msgstr "" -"La construcción de PDFs no fue posible, porque algunas dependencias no están " -"instaladas.\n" -"Por favor, consulte la documentación en http://kosmorro.space para más " -"información." - -#: _kosmorro/dumper.py:556 -#, fuzzy, python-format -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" -msgstr "" -"Se produjo un error durante la compilación del PDF.\n" -"Por favor, abra un número en https://github.com/Kosmorro/kosmorro/issues y " -"comparta el contenido del archivo de registro en /tmp/kosmorro-%s.log" - -#: _kosmorro/exceptions.py:34 -msgid "The date must be between {minimum_date} and {maximum_date}" -msgstr "La fecha debe estar entre {fecha_mínima} y {fecha_máxima}" - -#: _kosmorro/main.py:62 +#: kosmorro/__main__.py:63 #, fuzzy msgid "" "Save the planet and paper!\n" @@ -147,7 +31,7 @@ msgstr "" "Considere la posibilidad de imprimir su documento PDF sólo si es realmente " "necesario, y utilice el otro lado de la hoja." -#: _kosmorro/main.py:71 +#: kosmorro/__main__.py:72 #, fuzzy msgid "" "PDF output will not contain the ephemerides, because you didn't provide the " @@ -156,26 +40,28 @@ msgstr "" "La salida en PDF no contendrá las efemérides, porque no proporcionó la " "coordenada de observación." -#: _kosmorro/main.py:116 +#: kosmorro/__main__.py:117 #, fuzzy msgid "The file could not be saved in \"{path}\": {error}" msgstr "No pude guardar la salida en \"{path}\": {error}" -#: _kosmorro/main.py:130 +#: kosmorro/__main__.py:131 msgid "Please provide a file path to export in this format (--output)." msgstr "" -#: _kosmorro/main.py:163 -msgid "Moon phase can only be displayed between {min_date} and {max_date}" +#: kosmorro/__main__.py:164 +#, fuzzy +#| msgid "Moon phase can only be displayed between {min_date} and {max_date}" +msgid "Moon phase can only be computed between {min_date} and {max_date}" msgstr "La fase lunar sólo puede ser mostrada entre {min_date} y {max_date}" -#: _kosmorro/main.py:202 +#: kosmorro/__main__.py:203 #, fuzzy msgid "" "Running on Python {python_version} with Kosmorrolib v{kosmorrolib_version}" msgstr "Corriendo en Python {python_version}" -#: _kosmorro/main.py:215 +#: kosmorro/__main__.py:216 #, fuzzy msgid "" "Compute the ephemerides and the events for a given date and a given position " @@ -184,25 +70,30 @@ msgstr "" "Calcular las efemérides y los eventos para una fecha determinada, en una " "posición determinada en la Tierra." -#: _kosmorro/main.py:218 +#: kosmorro/__main__.py:219 +#, fuzzy +#| msgid "" +#| "By default, only the events will be computed for today ({date}).\n" +#| "To compute also the ephemerides, latitude and longitude arguments are " +#| "needed." msgid "" -"By default, only the events will be computed for today ({date}).\n" +"By default, only the events will be computed for today.\n" "To compute also the ephemerides, latitude and longitude arguments are needed." msgstr "" "Por defecto, sólo se computarán los eventos de hoy ({fecha}).\n" "Para calcular también las efemérides, se necesitan los argumentos de latitud " "y longitud." -#: _kosmorro/main.py:232 +#: kosmorro/__main__.py:232 msgid "Show the program version" msgstr "Mostrar la versión del programa" -#: _kosmorro/main.py:240 +#: kosmorro/__main__.py:240 #, fuzzy msgid "The format to output the information to" msgstr "El formato en el cual la información debe ser producida" -#: _kosmorro/main.py:247 +#: kosmorro/__main__.py:247 msgid "" "The observer's latitude on Earth. Can also be set in the KOSMORRO_LATITUDE " "environment variable." @@ -210,7 +101,7 @@ msgstr "" "La latitud del observador en la Tierra. También se puede establecer en la " "variable ambiental KOSMORRO_LATITUDE." -#: _kosmorro/main.py:257 +#: kosmorro/__main__.py:257 msgid "" "The observer's longitude on Earth. Can also be set in the KOSMORRO_LONGITUDE " "environment variable." @@ -218,18 +109,18 @@ msgstr "" "La longitud del observador en la Tierra. También se puede establecer en la " "variable ambiental KOSMORRO_LONGITUDE." -#: _kosmorro/main.py:267 +#: kosmorro/__main__.py:267 #, fuzzy 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 today ({default_date})." +"numbers). Defaults to current date." msgstr "" "La fecha para la que deben calcularse las efemérides (en el formato AAAA-MM-" "DD), o como un intervalo en el formato \"[+-]AAmDd\" (con números Y, M y D). " "Por defecto, la fecha actual ({fecha_por_ defecto})" -#: _kosmorro/main.py:278 +#: 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." @@ -238,11 +129,11 @@ msgstr "" "-3 para UTC-3). También se puede establecer en la variable de entorno " "KOSMORRO_TIMEZONE." -#: _kosmorro/main.py:287 +#: kosmorro/__main__.py:287 msgid "Disable the colors in the console." msgstr "Deshabilita los colores de la consola." -#: _kosmorro/main.py:294 +#: 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." @@ -250,7 +141,7 @@ msgstr "" "Un archivo al que exportar la salida. Si no se da, se utiliza la salida " "estándar. Este argumento es necesario para el formato PDF." -#: _kosmorro/main.py:303 +#: kosmorro/__main__.py:303 msgid "" "Do not generate a graph to represent the rise and set times in the PDF " "format." @@ -258,132 +149,248 @@ msgstr "" "No genere un gráfico para representar el aumento y los tiempos de ajuste en " "el formato PDF." -#: _kosmorro/main.py:311 +#: kosmorro/__main__.py:311 msgid "Show debugging messages" msgstr "" -#: _kosmorro/i18n/strings.py:11 +#: kosmorro/date.py:17 +msgid "The date {date} is not valid: {error}" +msgstr "La fecha no es válida: {error}" + +#: kosmorro/date.py:39 +msgid "" +"The date {date} does not match the required YYYY-MM-DD format or the offset " +"format." +msgstr "" +"La fecha {fecha} no coincide con el formato requerido AAAA-MM-DD o el " +"formato de desplazamiento." + +#: kosmorro/dumper.py:137 +msgid "Expected events:" +msgstr "Eventos esperados:" + +#: kosmorro/dumper.py:144 +msgid "Note: All the hours are given in UTC." +msgstr "Nota: Todas las horas se dan en UTC." + +#: kosmorro/dumper.py:151 +msgid "Note: All the hours are given in the UTC{offset} timezone." +msgstr "Nota: Todas las horas se dan en la zona horaria UTC." + +#: kosmorro/dumper.py:205 kosmorro/dumper.py:333 +msgid "Object" +msgstr "Objeto" + +#: kosmorro/dumper.py:206 kosmorro/dumper.py:334 +msgid "Rise time" +msgstr "Tiempo de ascenso" + +#: kosmorro/dumper.py:207 kosmorro/dumper.py:336 +msgid "Culmination time" +msgstr "Tiempo de culminación" + +#: kosmorro/dumper.py:208 kosmorro/dumper.py:338 +#, fuzzy +msgid "Set time" +msgstr "Poner la hora" + +#: kosmorro/dumper.py:234 +msgid "Moon phase is unavailable for this date." +msgstr "La fase lunar no está disponible para esta fecha." + +#: kosmorro/dumper.py:238 kosmorro/dumper.py:342 +msgid "Moon phase:" +msgstr "Fase lunar:" + +#: kosmorro/dumper.py:242 +#, fuzzy +msgid "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}" +msgstr "" +"en la {fase lunar siguiente} en la {fase lunar siguiente} a la {fase lunar " +"siguiente}" + +#: kosmorro/dumper.py:306 +msgid "Overview of your sky" +msgstr "" + +#: kosmorro/dumper.py:314 +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}." +msgstr "" +"Este documento resume las efemérides y los eventos de {fecha}. Su objetivo " +"es ayudarle a preparar su sesión de observación. Todas las horas están dadas " +"en {zona horaria}." + +#: kosmorro/dumper.py:324 +msgid "" +"Don't forget to check the weather forecast before you go out with your " +"equipment." +msgstr "" +"No olvides comprobar el pronóstico del tiempo antes de salir con tu equipo." + +#: kosmorro/dumper.py:331 +msgid "Ephemerides of the day" +msgstr "Las efemérides del día" + +#: kosmorro/dumper.py:340 +msgid "hours" +msgstr "horas" + +#: kosmorro/dumper.py:347 +msgid "Expected events" +msgstr "Eventos esperados" + +#: kosmorro/dumper.py:487 +#, fuzzy +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." +msgstr "" +"La construcción de PDFs no fue posible, porque algunas dependencias no están " +"instaladas.\n" +"Por favor, consulte la documentación en http://kosmorro.space para más " +"información." + +#: kosmorro/dumper.py:540 +#, fuzzy, python-format +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" +msgstr "" +"Se produjo un error durante la compilación del PDF.\n" +"Por favor, abra un número en https://github.com/Kosmorro/kosmorro/issues y " +"comparta el contenido del archivo de registro en /tmp/kosmorro-%s.log" + +#: kosmorro/exceptions.py:35 +msgid "The date must be between {minimum_date} and {maximum_date}" +msgstr "La fecha debe estar entre {fecha_mínima} y {fecha_máxima}" + +#: kosmorro/i18n/strings.py:11 #, python-format msgid "%s is in opposition" msgstr "%s está en la oposición" -#: _kosmorro/i18n/strings.py:12 +#: kosmorro/i18n/strings.py:12 #, python-format msgid "%s and %s are in conjunction" msgstr "Los %s y %s están en conjunción" -#: _kosmorro/i18n/strings.py:13 +#: kosmorro/i18n/strings.py:13 #, python-format msgid "%s occults %s" msgstr "%s ocultos %s" -#: _kosmorro/i18n/strings.py:15 +#: kosmorro/i18n/strings.py:15 #, python-format msgid "Elongation of %s is maximal" msgstr "" -#: _kosmorro/i18n/strings.py:18 +#: kosmorro/i18n/strings.py:18 #, python-format msgid "%s is at its perigee" msgstr "%s está en su perigeo" -#: _kosmorro/i18n/strings.py:19 +#: kosmorro/i18n/strings.py:19 #, python-format msgid "%s is at its apogee" msgstr "%s está en su apogeo" -#: _kosmorro/i18n/strings.py:35 +#: kosmorro/i18n/strings.py:35 msgid "New Moon" msgstr "Luna Nueva" -#: _kosmorro/i18n/strings.py:36 +#: kosmorro/i18n/strings.py:36 #, fuzzy msgid "Waxing Crescent" msgstr "Media luna de cera" -#: _kosmorro/i18n/strings.py:37 +#: kosmorro/i18n/strings.py:37 #, fuzzy msgid "First Quarter" msgstr "Primer trimestre" -#: _kosmorro/i18n/strings.py:38 +#: kosmorro/i18n/strings.py:38 #, fuzzy msgid "Waxing Gibbous" msgstr "El gibón de cera" -#: _kosmorro/i18n/strings.py:39 +#: kosmorro/i18n/strings.py:39 msgid "Full Moon" msgstr "Luna llena" -#: _kosmorro/i18n/strings.py:40 +#: kosmorro/i18n/strings.py:40 #, fuzzy msgid "Waning Gibbous" msgstr "Gibbous en extinción..." -#: _kosmorro/i18n/strings.py:41 +#: kosmorro/i18n/strings.py:41 #, fuzzy msgid "Last Quarter" msgstr "Último trimestre" -#: _kosmorro/i18n/strings.py:42 +#: kosmorro/i18n/strings.py:42 #, fuzzy msgid "Waning Crescent" msgstr "Media luna menguante" -#: _kosmorro/i18n/strings.py:53 +#: kosmorro/i18n/strings.py:53 msgid "Sun" msgstr "Sol" -#: _kosmorro/i18n/strings.py:54 +#: kosmorro/i18n/strings.py:54 msgid "Moon" msgstr "Luna" -#: _kosmorro/i18n/strings.py:55 +#: kosmorro/i18n/strings.py:55 msgid "Mercury" msgstr "Mercurio" -#: _kosmorro/i18n/strings.py:56 +#: kosmorro/i18n/strings.py:56 msgid "Venus" msgstr "Venus" -#: _kosmorro/i18n/strings.py:57 +#: kosmorro/i18n/strings.py:57 msgid "Mars" msgstr "Mars" -#: _kosmorro/i18n/strings.py:58 +#: kosmorro/i18n/strings.py:58 msgid "Jupiter" msgstr "Júpiter" -#: _kosmorro/i18n/strings.py:59 +#: kosmorro/i18n/strings.py:59 msgid "Saturn" msgstr "Saturno" -#: _kosmorro/i18n/strings.py:60 +#: kosmorro/i18n/strings.py:60 msgid "Uranus" msgstr "Urano" -#: _kosmorro/i18n/strings.py:61 +#: kosmorro/i18n/strings.py:61 msgid "Neptune" msgstr "Neptuno" -#: _kosmorro/i18n/strings.py:62 +#: kosmorro/i18n/strings.py:62 msgid "Pluto" msgstr "Plutón" -#: _kosmorro/i18n/utils.py:27 +#: kosmorro/i18n/utils.py:27 #, fuzzy msgid "{day_of_week} {month} {day_number}, {year}" msgstr "{día_de_semana} {mes} {número_de_día}, {año}" -#: _kosmorro/i18n/utils.py:30 +#: kosmorro/i18n/utils.py:30 msgid "{month} {day_number}, {hours}:{minutes}" msgstr "{mes} {número de día}, {horas}:{minutos}" -#: _kosmorro/i18n/utils.py:33 +#: kosmorro/i18n/utils.py:33 msgid "{month} {day_number}, {year}" msgstr "{mes} {número_de_día}, {año}" -#: _kosmorro/i18n/utils.py:36 +#: kosmorro/i18n/utils.py:36 #, fuzzy msgid "{hours}:{minutes}" msgstr "{horas}:{minutos}" diff --git a/_kosmorro/locales/fr/LC_MESSAGES/messages.po b/kosmorro/locales/fr/LC_MESSAGES/messages.po similarity index 79% rename from _kosmorro/locales/fr/LC_MESSAGES/messages.po rename to kosmorro/locales/fr/LC_MESSAGES/messages.po index 015fd54..80873a2 100644 --- a/_kosmorro/locales/fr/LC_MESSAGES/messages.po +++ b/kosmorro/locales/fr/LC_MESSAGES/messages.po @@ -2,14 +2,14 @@ # Copyright (C) 2021 ORGANIZATION # This file is distributed under the same license as the kosmorro project. # FIRST AUTHOR , 2021. -# Jérôme Deuchnord , 2021. +# Jérôme Deuchnord , 2021, 2022. msgid "" msgstr "" "Project-Id-Version: kosmorro 0.9.0\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-11-20 12:12+0100\n" -"PO-Revision-Date: 2021-06-22 08:33+0000\n" -"Last-Translator: Jérôme Deuchnord \n" +"POT-Creation-Date: 2022-03-19 13:28+0100\n" +"PO-Revision-Date: 2022-03-19 17:51+0000\n" +"Last-Translator: Anonymous \n" "Language-Team: French \n" "Language: fr\n" @@ -17,122 +17,10 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.7.1-dev\n" +"X-Generator: Weblate 4.12-dev\n" "Generated-By: Babel 2.9.0\n" -#: _kosmorro/date.py:17 -msgid "The date {date} is not valid: {error}" -msgstr "La date {date} n'est pas valide : {error}" - -#: _kosmorro/date.py:39 -msgid "" -"The date {date} does not match the required YYYY-MM-DD format or the offset " -"format." -msgstr "" -"La date {date} ne répond pas au format YYYY-MM-DD ou au format relatif." - -#: _kosmorro/dumper.py:120 -msgid "Expected events:" -msgstr "Événements prévus :" - -#: _kosmorro/dumper.py:127 -msgid "Note: All the hours are given in UTC." -msgstr "Note : toutes les heures sont en temps universel (UTC)." - -#: _kosmorro/dumper.py:134 -msgid "Note: All the hours are given in the UTC{offset} timezone." -msgstr "" -"Note : toutes les heures sont données dans le fuseau horaire UTC{offset}." - -#: _kosmorro/dumper.py:202 _kosmorro/dumper.py:335 -msgid "Object" -msgstr "Objet" - -#: _kosmorro/dumper.py:203 _kosmorro/dumper.py:336 -msgid "Rise time" -msgstr "Heure de lever" - -#: _kosmorro/dumper.py:204 _kosmorro/dumper.py:338 -msgid "Culmination time" -msgstr "Heure de culmination" - -#: _kosmorro/dumper.py:205 _kosmorro/dumper.py:340 -msgid "Set time" -msgstr "Heure de coucher" - -#: _kosmorro/dumper.py:236 -msgid "Moon phase is unavailable for this date." -msgstr "La phase de la Lune n'est pas disponible pour cette date." - -#: _kosmorro/dumper.py:240 _kosmorro/dumper.py:344 -msgid "Moon phase:" -msgstr "Phase de la Lune :" - -#: _kosmorro/dumper.py:244 -msgid "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}" -msgstr "{next_moon_phase} le {next_moon_phase_date} à {next_moon_phase_time}" - -#: _kosmorro/dumper.py:308 -msgid "Overview of your sky" -msgstr "Résumé de votre ciel" - -#: _kosmorro/dumper.py:316 -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}." -msgstr "" -"Ce document synthétise les éphémérides et les événements prévus pour le " -"{date}. Son but est de vous aider à préparer votre soirée d'observation. " -"Toutes les heures sont données en {timezone}." - -#: _kosmorro/dumper.py:326 -msgid "" -"Don't forget to check the weather forecast before you go out with your " -"equipment." -msgstr "" -"N’oubliez pas de vous assurer que les conditions météo sont favorables avant " -"de sortir votre matériel d’observation." - -#: _kosmorro/dumper.py:333 -msgid "Ephemerides of the day" -msgstr "Éphémérides du jour" - -#: _kosmorro/dumper.py:342 -msgid "hours" -msgstr "heures" - -#: _kosmorro/dumper.py:349 -msgid "Expected events" -msgstr "Événements prévus" - -#: _kosmorro/dumper.py:503 -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." -msgstr "" -"La génération du document PDF n'est pas possible, car certaines dépendances " -"ne sont pas installées.\n" -"Veuillez vous référer à la documentation sur https://kosmorro.space/cli/" -"generate-pdf/ pour de plus amples informations." - -#: _kosmorro/dumper.py:556 -#, python-format -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" -msgstr "" -"Une erreur s'est produite pendant la compilation du PDF.\n" -"Merci d'ouvrir un ticket sur https://github.com/Kosmorro/kosmorro/issues et " -"de partager le contenu du fichier journal situé dans /tmp/kosmorro-%s.log" - -#: _kosmorro/exceptions.py:34 -msgid "The date must be between {minimum_date} and {maximum_date}" -msgstr "La date doit être entre le {minimum_date} et le {maximum_date}" - -#: _kosmorro/main.py:62 +#: kosmorro/__main__.py:63 msgid "" "Save the planet and paper!\n" "Consider printing your PDF document only if really necessary, and use the " @@ -142,7 +30,7 @@ msgstr "" "N'imprimez le document PDF uniquement si nécessaire, et pensez à utiliser le " "verso de la feuille." -#: _kosmorro/main.py:71 +#: kosmorro/__main__.py:72 msgid "" "PDF output will not contain the ephemerides, because you didn't provide the " "observation coordinates." @@ -150,29 +38,29 @@ msgstr "" "Le document PDF ne contiendra pas les éphémérides, car les coordonnées du " "lieu d'observation sont manquantes." -#: _kosmorro/main.py:116 +#: kosmorro/__main__.py:117 msgid "The file could not be saved in \"{path}\": {error}" msgstr "Le fichier \"{path}\" n'a pas pu être enregistré : {error}" -#: _kosmorro/main.py:130 +#: kosmorro/__main__.py:131 msgid "Please provide a file path to export in this format (--output)." msgstr "" "Merci de fournir le chemin du fichier d'exporter pour ce format (--output)." -#: _kosmorro/main.py:163 -msgid "Moon phase can only be displayed between {min_date} and {max_date}" +#: kosmorro/__main__.py:164 +msgid "Moon phase can only be computed between {min_date} and {max_date}" msgstr "" -"La phase de la Lune ne peut être affichée qu'entre le {min_date} et le " +"La phase de la Lune ne peut être calculée qu'entre le {min_date} et le " "{max_date}" -#: _kosmorro/main.py:202 +#: kosmorro/__main__.py:203 msgid "" "Running on Python {python_version} with Kosmorrolib v{kosmorrolib_version}" msgstr "" "Exécuté à l'aide de Python {python_version} et de la Kosmorrolib " "v{kosmorrolib_version}" -#: _kosmorro/main.py:215 +#: kosmorro/__main__.py:216 msgid "" "Compute the ephemerides and the events for a given date and a given position " "on Earth." @@ -180,24 +68,23 @@ msgstr "" "Calcule les éphémérides et les événements pour une date et une position sur " "Terre données." -#: _kosmorro/main.py:218 +#: kosmorro/__main__.py:219 msgid "" -"By default, only the events will be computed for today ({date}).\n" +"By default, only the events will be computed for today.\n" "To compute also the ephemerides, latitude and longitude arguments are needed." msgstr "" -"Par défaut, seuls les événements sont calculés pour la date actuelle " -"({date}).\n" -"Pour calculer les éphémérides, la latitude et la longitude sont requis." +"Par défaut, seuls les événements sont calculés pour la date actuelle.\n" +"Pour calculer les éphémérides, la latitude et la longitude sont requises." -#: _kosmorro/main.py:232 +#: kosmorro/__main__.py:232 msgid "Show the program version" msgstr "Affiche la version du programme" -#: _kosmorro/main.py:240 +#: kosmorro/__main__.py:240 msgid "The format to output the information to" msgstr "Le format de sortie des informations" -#: _kosmorro/main.py:247 +#: kosmorro/__main__.py:247 msgid "" "The observer's latitude on Earth. Can also be set in the KOSMORRO_LATITUDE " "environment variable." @@ -205,7 +92,7 @@ msgstr "" "La latitude de l'observateur. Peut également être renseignée dans la " "variable d'environnement KOSMORRO_LATITUDE." -#: _kosmorro/main.py:257 +#: kosmorro/__main__.py:257 msgid "" "The observer's longitude on Earth. Can also be set in the KOSMORRO_LONGITUDE " "environment variable." @@ -213,18 +100,18 @@ msgstr "" "La longitude de l'observateur. Peut également être renseignée dans la " "variable d'environnement KOSMORRO_LONGITUDE." -#: _kosmorro/main.py:267 +#: 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 today ({default_date})." +"numbers). Defaults to current date." msgstr "" "La date pour laquelle les éphémérides doivent être calculées, soit au format " "AAAA-MM-JJ, soit sous la forme d'un intervalle au format \"[+-]Ay-Mm-Jd" -"\" (où A, M, et J sont des nombres). Par défaut, la date du jour " -"({default_date}) est utilisée." +"\" (où A, M, et J sont des nombres). Par défaut, la date du jour est " +"utilisée." -#: _kosmorro/main.py:278 +#: 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." @@ -233,11 +120,11 @@ msgstr "" "pour UTC+2 ou -3 pour UTC-3). Peut également être renseigné dans la variable " "d'environnement KOSMORRO_TIMEZONE." -#: _kosmorro/main.py:287 +#: kosmorro/__main__.py:287 msgid "Disable the colors in the console." msgstr "Désactive les couleurs dans la console." -#: _kosmorro/main.py:294 +#: 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." @@ -246,7 +133,7 @@ msgstr "" "la sortie standard de la console est utilisée. Cet argument est nécessaire " "pour le format de sortie PDF." -#: _kosmorro/main.py:303 +#: kosmorro/__main__.py:303 msgid "" "Do not generate a graph to represent the rise and set times in the PDF " "format." @@ -254,125 +141,237 @@ msgstr "" "Désactive la génération du graphique des levers et couchers des astres dans " "le format PDF." -#: _kosmorro/main.py:311 +#: kosmorro/__main__.py:311 msgid "Show debugging messages" msgstr "Affiche les information de débogage" -#: _kosmorro/i18n/strings.py:11 +#: kosmorro/date.py:17 +msgid "The date {date} is not valid: {error}" +msgstr "La date {date} n'est pas valide : {error}" + +#: kosmorro/date.py:39 +msgid "" +"The date {date} does not match the required YYYY-MM-DD format or the offset " +"format." +msgstr "" +"La date {date} ne répond pas au format YYYY-MM-DD ou au format relatif." + +#: kosmorro/dumper.py:137 +msgid "Expected events:" +msgstr "Événements prévus :" + +#: kosmorro/dumper.py:144 +msgid "Note: All the hours are given in UTC." +msgstr "Note : toutes les heures sont en temps universel (UTC)." + +#: kosmorro/dumper.py:151 +msgid "Note: All the hours are given in the UTC{offset} timezone." +msgstr "" +"Note : toutes les heures sont données dans le fuseau horaire UTC{offset}." + +#: kosmorro/dumper.py:205 kosmorro/dumper.py:333 +msgid "Object" +msgstr "Objet" + +#: kosmorro/dumper.py:206 kosmorro/dumper.py:334 +msgid "Rise time" +msgstr "Heure de lever" + +#: kosmorro/dumper.py:207 kosmorro/dumper.py:336 +msgid "Culmination time" +msgstr "Heure de culmination" + +#: kosmorro/dumper.py:208 kosmorro/dumper.py:338 +msgid "Set time" +msgstr "Heure de coucher" + +#: kosmorro/dumper.py:234 +msgid "Moon phase is unavailable for this date." +msgstr "La phase de la Lune n'est pas disponible pour cette date." + +#: kosmorro/dumper.py:238 kosmorro/dumper.py:342 +msgid "Moon phase:" +msgstr "Phase de la Lune :" + +#: kosmorro/dumper.py:242 +msgid "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}" +msgstr "{next_moon_phase} le {next_moon_phase_date} à {next_moon_phase_time}" + +#: kosmorro/dumper.py:306 +msgid "Overview of your sky" +msgstr "Résumé de votre ciel" + +#: kosmorro/dumper.py:314 +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}." +msgstr "" +"Ce document synthétise les éphémérides et les événements prévus pour le " +"{date}. Son but est de vous aider à préparer votre soirée d'observation. " +"Toutes les heures sont données en {timezone}." + +#: kosmorro/dumper.py:324 +msgid "" +"Don't forget to check the weather forecast before you go out with your " +"equipment." +msgstr "" +"N’oubliez pas de vous assurer que les conditions météo sont favorables avant " +"de sortir votre matériel d’observation." + +#: kosmorro/dumper.py:331 +msgid "Ephemerides of the day" +msgstr "Éphémérides du jour" + +#: kosmorro/dumper.py:340 +msgid "hours" +msgstr "heures" + +#: kosmorro/dumper.py:347 +msgid "Expected events" +msgstr "Événements prévus" + +#: 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." +msgstr "" +"La génération du document PDF n'est pas possible, car certaines dépendances " +"ne sont pas installées.\n" +"Veuillez vous référer à la documentation sur https://kosmorro.space/cli/" +"generate-pdf/ pour de plus amples informations." + +#: kosmorro/dumper.py:540 +#, python-format +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" +msgstr "" +"Une erreur s'est produite pendant la compilation du PDF.\n" +"Merci d'ouvrir un ticket sur https://github.com/Kosmorro/kosmorro/issues et " +"de partager le contenu du fichier journal situé dans /tmp/kosmorro-%s.log" + +#: kosmorro/exceptions.py:35 +msgid "The date must be between {minimum_date} and {maximum_date}" +msgstr "La date doit être entre le {minimum_date} et le {maximum_date}" + +#: kosmorro/i18n/strings.py:11 #, python-format msgid "%s is in opposition" msgstr "%s est à l'opposition" -#: _kosmorro/i18n/strings.py:12 +#: kosmorro/i18n/strings.py:12 #, python-format msgid "%s and %s are in conjunction" msgstr "%s et %s sont en conjonction" -#: _kosmorro/i18n/strings.py:13 +#: kosmorro/i18n/strings.py:13 #, python-format msgid "%s occults %s" msgstr "%s occulte %s" -#: _kosmorro/i18n/strings.py:15 +#: kosmorro/i18n/strings.py:15 #, python-format msgid "Elongation of %s is maximal" msgstr "L’élongation de %s est maximale" -#: _kosmorro/i18n/strings.py:18 +#: kosmorro/i18n/strings.py:18 #, python-format msgid "%s is at its perigee" msgstr "%s est à son périgée" -#: _kosmorro/i18n/strings.py:19 +#: kosmorro/i18n/strings.py:19 #, python-format msgid "%s is at its apogee" msgstr "%s est à son apogée" -#: _kosmorro/i18n/strings.py:35 +#: kosmorro/i18n/strings.py:35 msgid "New Moon" msgstr "Nouvelle lune" -#: _kosmorro/i18n/strings.py:36 +#: kosmorro/i18n/strings.py:36 msgid "Waxing Crescent" msgstr "Premier croissant" -#: _kosmorro/i18n/strings.py:37 +#: kosmorro/i18n/strings.py:37 msgid "First Quarter" msgstr "Premier quartier" -#: _kosmorro/i18n/strings.py:38 +#: kosmorro/i18n/strings.py:38 msgid "Waxing Gibbous" msgstr "Gibbeuse croissante" -#: _kosmorro/i18n/strings.py:39 +#: kosmorro/i18n/strings.py:39 msgid "Full Moon" msgstr "Pleine lune" -#: _kosmorro/i18n/strings.py:40 +#: kosmorro/i18n/strings.py:40 msgid "Waning Gibbous" msgstr "Gibbeuse décroissante" -#: _kosmorro/i18n/strings.py:41 +#: kosmorro/i18n/strings.py:41 msgid "Last Quarter" msgstr "Dernier quartier" -#: _kosmorro/i18n/strings.py:42 +#: kosmorro/i18n/strings.py:42 msgid "Waning Crescent" msgstr "Dernier croissant" -#: _kosmorro/i18n/strings.py:53 +#: kosmorro/i18n/strings.py:53 msgid "Sun" msgstr "Soleil" -#: _kosmorro/i18n/strings.py:54 +#: kosmorro/i18n/strings.py:54 msgid "Moon" msgstr "Lune" -#: _kosmorro/i18n/strings.py:55 +#: kosmorro/i18n/strings.py:55 msgid "Mercury" msgstr "Mercure" -#: _kosmorro/i18n/strings.py:56 +#: kosmorro/i18n/strings.py:56 msgid "Venus" msgstr "Vénus" -#: _kosmorro/i18n/strings.py:57 +#: kosmorro/i18n/strings.py:57 msgid "Mars" msgstr "Mars" -#: _kosmorro/i18n/strings.py:58 +#: kosmorro/i18n/strings.py:58 msgid "Jupiter" msgstr "Jupiter" -#: _kosmorro/i18n/strings.py:59 +#: kosmorro/i18n/strings.py:59 msgid "Saturn" msgstr "Saturne" -#: _kosmorro/i18n/strings.py:60 +#: kosmorro/i18n/strings.py:60 msgid "Uranus" msgstr "Uranus" -#: _kosmorro/i18n/strings.py:61 +#: kosmorro/i18n/strings.py:61 msgid "Neptune" msgstr "Neptune" -#: _kosmorro/i18n/strings.py:62 +#: kosmorro/i18n/strings.py:62 msgid "Pluto" msgstr "Pluton" -#: _kosmorro/i18n/utils.py:27 +#: kosmorro/i18n/utils.py:27 msgid "{day_of_week} {month} {day_number}, {year}" msgstr "{day_of_week} {day_number} {month} {year}" -#: _kosmorro/i18n/utils.py:30 +#: kosmorro/i18n/utils.py:30 msgid "{month} {day_number}, {hours}:{minutes}" msgstr "{day_number} {month}, {hours}:{minutes}" -#: _kosmorro/i18n/utils.py:33 +#: kosmorro/i18n/utils.py:33 msgid "{month} {day_number}, {year}" msgstr "{day_number} {month} {year}" -#: _kosmorro/i18n/utils.py:36 +#: kosmorro/i18n/utils.py:36 msgid "{hours}:{minutes}" msgstr "{hours}h{minutes}" diff --git a/_kosmorro/locales/messages.pot b/kosmorro/locales/messages.pot similarity index 66% rename from _kosmorro/locales/messages.pot rename to kosmorro/locales/messages.pot index db42da8..7814bb9 100644 --- a/_kosmorro/locales/messages.pot +++ b/kosmorro/locales/messages.pot @@ -1,14 +1,14 @@ -# Translations template for kosmorro. +# Translations template for PROJECT. # Copyright (C) 2022 ORGANIZATION -# This file is distributed under the same license as the kosmorro project. +# This file is distributed under the same license as the PROJECT project. # FIRST AUTHOR , 2022. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: kosmorro 0.10.9\n" +"Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2022-01-12 08:53+0100\n" +"POT-Creation-Date: 2022-03-20 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,315 +17,315 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.9.1\n" -#: _kosmorro/date.py:17 -msgid "The date {date} is not valid: {error}" +#: kosmorro/__main__.py:61 +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 "" -#: _kosmorro/date.py:39 +#: kosmorro/__main__.py:70 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 "" -#: _kosmorro/dumper.py:120 -msgid "Expected events:" +#: kosmorro/__main__.py:115 +msgid "The file could not be saved in \"{path}\": {error}" msgstr "" -#: _kosmorro/dumper.py:127 -msgid "Note: All the hours are given in UTC." +#: kosmorro/__main__.py:129 +msgid "Please provide a file path to export in this format (--output)." msgstr "" -#: _kosmorro/dumper.py:134 -msgid "Note: All the hours are given in the UTC{offset} timezone." +#: kosmorro/__main__.py:162 +msgid "Moon phase can only be computed between {min_date} and {max_date}" msgstr "" -#: _kosmorro/dumper.py:202 _kosmorro/dumper.py:335 -msgid "Object" +#: kosmorro/__main__.py:201 +msgid "Running on Python {python_version} with Kosmorrolib v{kosmorrolib_version}" msgstr "" -#: _kosmorro/dumper.py:203 _kosmorro/dumper.py:336 -msgid "Rise time" +#: kosmorro/__main__.py:214 +msgid "" +"Compute the ephemerides and the events for a given date and a given " +"position on Earth." msgstr "" -#: _kosmorro/dumper.py:204 _kosmorro/dumper.py:338 -msgid "Culmination time" +#: kosmorro/__main__.py:217 +msgid "" +"By default, only the events will be computed for today.\n" +"To compute also the ephemerides, latitude and longitude arguments are " +"needed." msgstr "" -#: _kosmorro/dumper.py:205 _kosmorro/dumper.py:340 -msgid "Set time" +#: kosmorro/__main__.py:230 +msgid "Show the program version" msgstr "" -#: _kosmorro/dumper.py:236 -msgid "Moon phase is unavailable for this date." +#: kosmorro/__main__.py:238 +msgid "The format to output the information to" msgstr "" -#: _kosmorro/dumper.py:240 _kosmorro/dumper.py:344 -msgid "Moon phase:" +#: kosmorro/__main__.py:245 +msgid "" +"The observer's latitude on Earth. Can also be set in the " +"KOSMORRO_LATITUDE environment variable." msgstr "" -#: _kosmorro/dumper.py:244 -msgid "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}" +#: kosmorro/__main__.py:255 +msgid "" +"The observer's longitude on Earth. Can also be set in the " +"KOSMORRO_LONGITUDE environment variable." msgstr "" -#: _kosmorro/dumper.py:308 -msgid "Overview of your sky" +#: kosmorro/__main__.py:265 +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 "" -#: _kosmorro/dumper.py:316 +#: kosmorro/__main__.py:276 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 "" -#: _kosmorro/dumper.py:326 -msgid "" -"Don't forget to check the weather forecast before you go out with your " -"equipment." +#: kosmorro/__main__.py:285 +msgid "Disable the colors in the console." msgstr "" -#: _kosmorro/dumper.py:333 -msgid "Ephemerides of the day" +#: kosmorro/__main__.py:292 +msgid "" +"A file to export the output to. If not given, the standard output is " +"used. This argument is needed for PDF format." msgstr "" -#: _kosmorro/dumper.py:342 -msgid "hours" +#: kosmorro/__main__.py:301 +msgid "" +"Do not generate a graph to represent the rise and set times in the PDF " +"format." msgstr "" -#: _kosmorro/dumper.py:349 -msgid "Expected events" +#: kosmorro/__main__.py:309 +msgid "Show debugging messages" msgstr "" -#: _kosmorro/dumper.py:503 -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 "" -#: _kosmorro/dumper.py:556 -#, python-format +#: kosmorro/date.py:39 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 "" -#: _kosmorro/exceptions.py:34 -msgid "The date must be between {minimum_date} and {maximum_date}" +#: kosmorro/dumper.py:137 +msgid "Expected events:" msgstr "" -#: _kosmorro/main.py:60 -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 "" -#: _kosmorro/main.py:69 -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 "" -#: _kosmorro/main.py:114 -msgid "The file could not be saved in \"{path}\": {error}" +#: kosmorro/dumper.py:205 kosmorro/dumper.py:333 +msgid "Object" msgstr "" -#: _kosmorro/main.py:128 -msgid "Please provide a file path to export in this format (--output)." +#: kosmorro/dumper.py:206 kosmorro/dumper.py:334 +msgid "Rise time" msgstr "" -#: _kosmorro/main.py:161 -msgid "Moon phase can only be displayed between {min_date} and {max_date}" +#: kosmorro/dumper.py:207 kosmorro/dumper.py:336 +msgid "Culmination time" msgstr "" -#: _kosmorro/main.py:200 -msgid "Running on Python {python_version} with Kosmorrolib v{kosmorrolib_version}" +#: kosmorro/dumper.py:208 kosmorro/dumper.py:338 +msgid "Set time" msgstr "" -#: _kosmorro/main.py:213 -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 "" -#: _kosmorro/main.py:216 -msgid "" -"By default, only the events will be computed for today ({date}).\n" -"To compute also the ephemerides, latitude and longitude arguments are " -"needed." +#: kosmorro/dumper.py:238 kosmorro/dumper.py:342 +msgid "Moon phase:" msgstr "" -#: _kosmorro/main.py:230 -msgid "Show the program version" +#: kosmorro/dumper.py:242 +msgid "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}" msgstr "" -#: _kosmorro/main.py:238 -msgid "The format to output the information to" +#: kosmorro/dumper.py:306 +msgid "Overview of your sky" msgstr "" -#: _kosmorro/main.py:245 +#: kosmorro/dumper.py:314 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 "" -#: _kosmorro/main.py:255 +#: kosmorro/dumper.py:324 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 "" -#: _kosmorro/main.py:265 -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 today ({default_date})." +#: kosmorro/dumper.py:331 +msgid "Ephemerides of the day" msgstr "" -#: _kosmorro/main.py:276 -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 "" -#: _kosmorro/main.py:285 -msgid "Disable the colors in the console." +#: kosmorro/dumper.py:347 +msgid "Expected events" msgstr "" -#: _kosmorro/main.py:292 +#: kosmorro/dumper.py:487 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 "" -#: _kosmorro/main.py:301 +#: kosmorro/dumper.py:540 +#, python-format 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 "" -#: _kosmorro/main.py:309 -msgid "Show debugging messages" +#: kosmorro/exceptions.py:35 +msgid "The date must be between {minimum_date} and {maximum_date}" msgstr "" -#: _kosmorro/i18n/strings.py:11 +#: kosmorro/i18n/strings.py:11 #, python-format msgid "%s is in opposition" msgstr "" -#: _kosmorro/i18n/strings.py:12 +#: kosmorro/i18n/strings.py:12 #, python-format msgid "%s and %s are in conjunction" msgstr "" -#: _kosmorro/i18n/strings.py:13 +#: kosmorro/i18n/strings.py:13 #, python-format msgid "%s occults %s" msgstr "" -#: _kosmorro/i18n/strings.py:15 +#: kosmorro/i18n/strings.py:15 #, python-format msgid "Elongation of %s is maximal" msgstr "" -#: _kosmorro/i18n/strings.py:18 +#: kosmorro/i18n/strings.py:18 #, python-format msgid "%s is at its perigee" msgstr "" -#: _kosmorro/i18n/strings.py:19 +#: kosmorro/i18n/strings.py:19 #, python-format msgid "%s is at its apogee" msgstr "" -#: _kosmorro/i18n/strings.py:35 +#: kosmorro/i18n/strings.py:35 msgid "New Moon" msgstr "" -#: _kosmorro/i18n/strings.py:36 +#: kosmorro/i18n/strings.py:36 msgid "Waxing Crescent" msgstr "" -#: _kosmorro/i18n/strings.py:37 +#: kosmorro/i18n/strings.py:37 msgid "First Quarter" msgstr "" -#: _kosmorro/i18n/strings.py:38 +#: kosmorro/i18n/strings.py:38 msgid "Waxing Gibbous" msgstr "" -#: _kosmorro/i18n/strings.py:39 +#: kosmorro/i18n/strings.py:39 msgid "Full Moon" msgstr "" -#: _kosmorro/i18n/strings.py:40 +#: kosmorro/i18n/strings.py:40 msgid "Waning Gibbous" msgstr "" -#: _kosmorro/i18n/strings.py:41 +#: kosmorro/i18n/strings.py:41 msgid "Last Quarter" msgstr "" -#: _kosmorro/i18n/strings.py:42 +#: kosmorro/i18n/strings.py:42 msgid "Waning Crescent" msgstr "" -#: _kosmorro/i18n/strings.py:53 +#: kosmorro/i18n/strings.py:53 msgid "Sun" msgstr "" -#: _kosmorro/i18n/strings.py:54 +#: kosmorro/i18n/strings.py:54 msgid "Moon" msgstr "" -#: _kosmorro/i18n/strings.py:55 +#: kosmorro/i18n/strings.py:55 msgid "Mercury" msgstr "" -#: _kosmorro/i18n/strings.py:56 +#: kosmorro/i18n/strings.py:56 msgid "Venus" msgstr "" -#: _kosmorro/i18n/strings.py:57 +#: kosmorro/i18n/strings.py:57 msgid "Mars" msgstr "" -#: _kosmorro/i18n/strings.py:58 +#: kosmorro/i18n/strings.py:58 msgid "Jupiter" msgstr "" -#: _kosmorro/i18n/strings.py:59 +#: kosmorro/i18n/strings.py:59 msgid "Saturn" msgstr "" -#: _kosmorro/i18n/strings.py:60 +#: kosmorro/i18n/strings.py:60 msgid "Uranus" msgstr "" -#: _kosmorro/i18n/strings.py:61 +#: kosmorro/i18n/strings.py:61 msgid "Neptune" msgstr "" -#: _kosmorro/i18n/strings.py:62 +#: kosmorro/i18n/strings.py:62 msgid "Pluto" msgstr "" -#: _kosmorro/i18n/utils.py:27 +#: kosmorro/i18n/utils.py:27 msgid "{day_of_week} {month} {day_number}, {year}" msgstr "" -#: _kosmorro/i18n/utils.py:30 +#: kosmorro/i18n/utils.py:30 msgid "{month} {day_number}, {hours}:{minutes}" msgstr "" -#: _kosmorro/i18n/utils.py:33 +#: kosmorro/i18n/utils.py:33 msgid "{month} {day_number}, {year}" msgstr "" -#: _kosmorro/i18n/utils.py:36 +#: kosmorro/i18n/utils.py:36 msgid "{hours}:{minutes}" msgstr "" diff --git a/_kosmorro/locales/nb_NO/LC_MESSAGES/messages.po b/kosmorro/locales/nb_NO/LC_MESSAGES/messages.po similarity index 72% rename from _kosmorro/locales/nb_NO/LC_MESSAGES/messages.po rename to kosmorro/locales/nb_NO/LC_MESSAGES/messages.po index a6d5cf1..26d4153 100644 --- a/_kosmorro/locales/nb_NO/LC_MESSAGES/messages.po +++ b/kosmorro/locales/nb_NO/LC_MESSAGES/messages.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: kosmorro 0.9.0\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-11-20 12:12+0100\n" -"PO-Revision-Date: 2021-05-16 09:25+0000\n" +"POT-Creation-Date: 2022-03-19 13:28+0100\n" +"PO-Revision-Date: 2022-03-19 17:51+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Norwegian Bokmål \n" @@ -17,14 +17,110 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.7-dev\n" +"X-Generator: Weblate 4.12-dev\n" "Generated-By: Babel 2.9.0\n" -#: _kosmorro/date.py:17 +#: 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 "" + +#: kosmorro/__main__.py:72 +msgid "" +"PDF output will not contain the ephemerides, because you didn't provide the " +"observation coordinates." +msgstr "" + +#: kosmorro/__main__.py:117 +msgid "The file could not be saved in \"{path}\": {error}" +msgstr "" + +#: kosmorro/__main__.py:131 +msgid "Please provide a file path to export in this format (--output)." +msgstr "" + +#: kosmorro/__main__.py:164 +msgid "Moon phase can only be computed between {min_date} and {max_date}" +msgstr "" + +#: kosmorro/__main__.py:203 +#, fuzzy +msgid "" +"Running on Python {python_version} with Kosmorrolib v{kosmorrolib_version}" +msgstr "Kjører med Python {python_version}" + +#: kosmorro/__main__.py:216 +msgid "" +"Compute the ephemerides and the events for a given date and a given position " +"on Earth." +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." +msgstr "" + +#: kosmorro/__main__.py:232 +msgid "Show the program version" +msgstr "Vis programversjonen" + +#: kosmorro/__main__.py:240 +msgid "The format to output the information to" +msgstr "" + +#: kosmorro/__main__.py:247 +msgid "" +"The observer's latitude on Earth. Can also be set in the KOSMORRO_LATITUDE " +"environment variable." +msgstr "" + +#: kosmorro/__main__.py:257 +msgid "" +"The observer's longitude on Earth. Can also be set in the KOSMORRO_LONGITUDE " +"environment variable." +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." +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." +msgstr "" + +#: kosmorro/__main__.py:287 +msgid "Disable the colors in the console." +msgstr "" + +#: 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 "" + +#: kosmorro/__main__.py:303 +msgid "" +"Do not generate a graph to represent the rise and set times in the PDF " +"format." +msgstr "" + +#: kosmorro/__main__.py:311 +msgid "Show debugging messages" +msgstr "" + +#: kosmorro/date.py:17 msgid "The date {date} is not valid: {error}" msgstr "Datoen {date} er ikke gyldig: {error}" -#: _kosmorro/date.py:39 +#: kosmorro/date.py:39 #, fuzzy msgid "" "The date {date} does not match the required YYYY-MM-DD format or the offset " @@ -33,86 +129,86 @@ msgstr "" "Datoen {date} passer ikke overens med påkrevd ÅÅÅÅ-MM-DD -format, eller " "forskyvningsformatet." -#: _kosmorro/dumper.py:120 +#: kosmorro/dumper.py:137 msgid "Expected events:" msgstr "Forventede hendelser:" -#: _kosmorro/dumper.py:127 +#: kosmorro/dumper.py:144 msgid "Note: All the hours are given in UTC." msgstr "Merk: Alle tider er angitt i UTC." -#: _kosmorro/dumper.py:134 +#: kosmorro/dumper.py:151 #, fuzzy msgid "Note: All the hours are given in the UTC{offset} timezone." msgstr "Merk: Alle tider er angitt i UTC{offset}-tidssone." -#: _kosmorro/dumper.py:202 _kosmorro/dumper.py:335 +#: kosmorro/dumper.py:205 kosmorro/dumper.py:333 msgid "Object" msgstr "Objekt" -#: _kosmorro/dumper.py:203 _kosmorro/dumper.py:336 +#: kosmorro/dumper.py:206 kosmorro/dumper.py:334 #, fuzzy msgid "Rise time" msgstr "Emningstid" -#: _kosmorro/dumper.py:204 _kosmorro/dumper.py:338 +#: kosmorro/dumper.py:207 kosmorro/dumper.py:336 msgid "Culmination time" msgstr "Høydepunkt" -#: _kosmorro/dumper.py:205 _kosmorro/dumper.py:340 +#: kosmorro/dumper.py:208 kosmorro/dumper.py:338 msgid "Set time" msgstr "" -#: _kosmorro/dumper.py:236 +#: kosmorro/dumper.py:234 msgid "Moon phase is unavailable for this date." msgstr "Månefase er utilgjengelig for denne datoen." -#: _kosmorro/dumper.py:240 _kosmorro/dumper.py:344 +#: kosmorro/dumper.py:238 kosmorro/dumper.py:342 msgid "Moon phase:" msgstr "Månefase:" -#: _kosmorro/dumper.py:244 +#: kosmorro/dumper.py:242 msgid "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}" msgstr "" "{next_moon_phase} {next_moon_phase_date} klokken {next_moon_phase_time}" -#: _kosmorro/dumper.py:308 +#: kosmorro/dumper.py:306 msgid "Overview of your sky" msgstr "" -#: _kosmorro/dumper.py:316 +#: kosmorro/dumper.py:314 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}." msgstr "" -#: _kosmorro/dumper.py:326 +#: kosmorro/dumper.py:324 msgid "" "Don't forget to check the weather forecast before you go out with your " "equipment." msgstr "Ikke glem å sjekke værmeldingen før du gir deg ivei med utstyret ditt." -#: _kosmorro/dumper.py:333 +#: kosmorro/dumper.py:331 msgid "Ephemerides of the day" msgstr "" -#: _kosmorro/dumper.py:342 +#: kosmorro/dumper.py:340 msgid "hours" msgstr "timer" -#: _kosmorro/dumper.py:349 +#: kosmorro/dumper.py:347 msgid "Expected events" msgstr "Forventede hendelser" -#: _kosmorro/dumper.py:503 +#: 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." msgstr "" -#: _kosmorro/dumper.py:556 +#: kosmorro/dumper.py:540 #, python-format msgid "" "An error occurred during the compilation of the PDF.\n" @@ -120,225 +216,129 @@ msgid "" "share the content of the log file at /tmp/kosmorro-%s.log" msgstr "" -#: _kosmorro/exceptions.py:34 +#: kosmorro/exceptions.py:35 msgid "The date must be between {minimum_date} and {maximum_date}" msgstr "" -#: _kosmorro/main.py:62 -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 "" - -#: _kosmorro/main.py:71 -msgid "" -"PDF output will not contain the ephemerides, because you didn't provide the " -"observation coordinates." -msgstr "" - -#: _kosmorro/main.py:116 -msgid "The file could not be saved in \"{path}\": {error}" -msgstr "" - -#: _kosmorro/main.py:130 -msgid "Please provide a file path to export in this format (--output)." -msgstr "" - -#: _kosmorro/main.py:163 -msgid "Moon phase can only be displayed between {min_date} and {max_date}" -msgstr "" - -#: _kosmorro/main.py:202 -#, fuzzy -msgid "" -"Running on Python {python_version} with Kosmorrolib v{kosmorrolib_version}" -msgstr "Kjører med Python {python_version}" - -#: _kosmorro/main.py:215 -msgid "" -"Compute the ephemerides and the events for a given date and a given position " -"on Earth." -msgstr "" - -#: _kosmorro/main.py:218 -msgid "" -"By default, only the events will be computed for today ({date}).\n" -"To compute also the ephemerides, latitude and longitude arguments are needed." -msgstr "" - -#: _kosmorro/main.py:232 -msgid "Show the program version" -msgstr "Vis programversjonen" - -#: _kosmorro/main.py:240 -msgid "The format to output the information to" -msgstr "" - -#: _kosmorro/main.py:247 -msgid "" -"The observer's latitude on Earth. Can also be set in the KOSMORRO_LATITUDE " -"environment variable." -msgstr "" - -#: _kosmorro/main.py:257 -msgid "" -"The observer's longitude on Earth. Can also be set in the KOSMORRO_LONGITUDE " -"environment variable." -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 today ({default_date})." -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." -msgstr "" - -#: _kosmorro/main.py:287 -msgid "Disable the colors in the console." -msgstr "" - -#: _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 "" - -#: _kosmorro/main.py:303 -msgid "" -"Do not generate a graph to represent the rise and set times in the PDF " -"format." -msgstr "" - -#: _kosmorro/main.py:311 -msgid "Show debugging messages" -msgstr "" - -#: _kosmorro/i18n/strings.py:11 +#: kosmorro/i18n/strings.py:11 #, python-format msgid "%s is in opposition" msgstr "" -#: _kosmorro/i18n/strings.py:12 +#: kosmorro/i18n/strings.py:12 #, python-format msgid "%s and %s are in conjunction" msgstr "" -#: _kosmorro/i18n/strings.py:13 +#: kosmorro/i18n/strings.py:13 #, fuzzy, python-format msgid "%s occults %s" msgstr "%s dekker %s" -#: _kosmorro/i18n/strings.py:15 +#: kosmorro/i18n/strings.py:15 #, python-format msgid "Elongation of %s is maximal" msgstr "" -#: _kosmorro/i18n/strings.py:18 +#: kosmorro/i18n/strings.py:18 #, python-format msgid "%s is at its perigee" msgstr "" -#: _kosmorro/i18n/strings.py:19 +#: kosmorro/i18n/strings.py:19 #, python-format msgid "%s is at its apogee" msgstr "" -#: _kosmorro/i18n/strings.py:35 +#: kosmorro/i18n/strings.py:35 msgid "New Moon" msgstr "Nymåne" -#: _kosmorro/i18n/strings.py:36 +#: kosmorro/i18n/strings.py:36 #, fuzzy msgid "Waxing Crescent" msgstr "Fallende sigd" -#: _kosmorro/i18n/strings.py:37 +#: kosmorro/i18n/strings.py:37 msgid "First Quarter" msgstr "Første kvarter" -#: _kosmorro/i18n/strings.py:38 +#: kosmorro/i18n/strings.py:38 #, fuzzy msgid "Waxing Gibbous" msgstr "Fallende større enn halv" -#: _kosmorro/i18n/strings.py:39 +#: kosmorro/i18n/strings.py:39 msgid "Full Moon" msgstr "Fullmåne" -#: _kosmorro/i18n/strings.py:40 +#: kosmorro/i18n/strings.py:40 #, fuzzy msgid "Waning Gibbous" msgstr "Fallende større enn halv" -#: _kosmorro/i18n/strings.py:41 +#: kosmorro/i18n/strings.py:41 msgid "Last Quarter" msgstr "Siste kvarter" -#: _kosmorro/i18n/strings.py:42 +#: kosmorro/i18n/strings.py:42 #, fuzzy msgid "Waning Crescent" msgstr "Fallende sigd" -#: _kosmorro/i18n/strings.py:53 +#: kosmorro/i18n/strings.py:53 msgid "Sun" msgstr "Solen" -#: _kosmorro/i18n/strings.py:54 +#: kosmorro/i18n/strings.py:54 msgid "Moon" msgstr "Månen" -#: _kosmorro/i18n/strings.py:55 +#: kosmorro/i18n/strings.py:55 msgid "Mercury" msgstr "Merkur" -#: _kosmorro/i18n/strings.py:56 +#: kosmorro/i18n/strings.py:56 msgid "Venus" msgstr "Venus" -#: _kosmorro/i18n/strings.py:57 +#: kosmorro/i18n/strings.py:57 msgid "Mars" msgstr "Mars" -#: _kosmorro/i18n/strings.py:58 +#: kosmorro/i18n/strings.py:58 msgid "Jupiter" msgstr "Jupiter" -#: _kosmorro/i18n/strings.py:59 +#: kosmorro/i18n/strings.py:59 msgid "Saturn" msgstr "Saturn" -#: _kosmorro/i18n/strings.py:60 +#: kosmorro/i18n/strings.py:60 msgid "Uranus" msgstr "Uranus" -#: _kosmorro/i18n/strings.py:61 +#: kosmorro/i18n/strings.py:61 msgid "Neptune" msgstr "Neptun" -#: _kosmorro/i18n/strings.py:62 +#: kosmorro/i18n/strings.py:62 msgid "Pluto" msgstr "Pluto" -#: _kosmorro/i18n/utils.py:27 +#: kosmorro/i18n/utils.py:27 msgid "{day_of_week} {month} {day_number}, {year}" msgstr "" -#: _kosmorro/i18n/utils.py:30 +#: kosmorro/i18n/utils.py:30 msgid "{month} {day_number}, {hours}:{minutes}" msgstr "{day_number} {month}, {hours}:{minutes}" -#: _kosmorro/i18n/utils.py:33 +#: kosmorro/i18n/utils.py:33 msgid "{month} {day_number}, {year}" msgstr "{day_number} {month} {year}" -#: _kosmorro/i18n/utils.py:36 +#: kosmorro/i18n/utils.py:36 msgid "{hours}:{minutes}" msgstr "" diff --git a/_kosmorro/locales/nl/LC_MESSAGES/messages.po b/kosmorro/locales/nl/LC_MESSAGES/messages.po similarity index 77% rename from _kosmorro/locales/nl/LC_MESSAGES/messages.po rename to kosmorro/locales/nl/LC_MESSAGES/messages.po index 8cece7f..a00c429 100644 --- a/_kosmorro/locales/nl/LC_MESSAGES/messages.po +++ b/kosmorro/locales/nl/LC_MESSAGES/messages.po @@ -7,135 +7,19 @@ msgid "" msgstr "" "Project-Id-Version: kosmorro 0.9.0\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-11-20 12:12+0100\n" -"PO-Revision-Date: 2021-11-02 21:34+0000\n" -"Last-Translator: Damgermys \n" +"POT-Creation-Date: 2022-03-19 13:28+0100\n" +"PO-Revision-Date: 2022-03-19 17:51+0000\n" +"Last-Translator: Anonymous \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.9-dev\n" +"X-Generator: Weblate 4.12-dev\n" "Generated-By: Babel 2.9.0\n" -#: _kosmorro/date.py:17 -msgid "The date {date} is not valid: {error}" -msgstr "De datum {date} is niet geldig: {error}" - -#: _kosmorro/date.py:39 -#, fuzzy -msgid "" -"The date {date} does not match the required YYYY-MM-DD format or the offset " -"format." -msgstr "" -"De datum {date} komt niet overeen met het vereiste JJJJ-MM-DD-formaat of het " -"offset-formaat." - -#: _kosmorro/dumper.py:120 -msgid "Expected events:" -msgstr "Verwachte evenementen:" - -#: _kosmorro/dumper.py:127 -msgid "Note: All the hours are given in UTC." -msgstr "Opmerking: alle uren worden gegeven in UTC." - -#: _kosmorro/dumper.py:134 -msgid "Note: All the hours are given in the UTC{offset} timezone." -msgstr "Opmerking: alle uren worden gegeven in de UTC{offset} tijdzone." - -#: _kosmorro/dumper.py:202 _kosmorro/dumper.py:335 -msgid "Object" -msgstr "Object" - -#: _kosmorro/dumper.py:203 _kosmorro/dumper.py:336 -#, fuzzy -msgid "Rise time" -msgstr "Opgang tijd" - -#: _kosmorro/dumper.py:204 _kosmorro/dumper.py:338 -#, fuzzy -msgid "Culmination time" -msgstr "Culminatie tijd" - -#: _kosmorro/dumper.py:205 _kosmorro/dumper.py:340 -#, fuzzy -msgid "Set time" -msgstr "Ondergang tijd" - -#: _kosmorro/dumper.py:236 -msgid "Moon phase is unavailable for this date." -msgstr "Maanfase is niet beschikbaar voor deze datum." - -#: _kosmorro/dumper.py:240 _kosmorro/dumper.py:344 -msgid "Moon phase:" -msgstr "Maanfase:" - -#: _kosmorro/dumper.py:244 -msgid "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}" -msgstr "{next_moon_phase} op {next_moon_phase_date} om {next_moon_phase_time}" - -#: _kosmorro/dumper.py:308 -msgid "Overview of your sky" -msgstr "Overzicht van uw hemel" - -#: _kosmorro/dumper.py:316 -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}." -msgstr "" -"Dit document vat de efemeriden en de gebeurtenissen van {date} samen. Het is " -"bedoeld om u te helpen bij het voorbereiden van uw observatiesessie. Alle " -"uren worden gegeven in {timezone}." - -#: _kosmorro/dumper.py:326 -msgid "" -"Don't forget to check the weather forecast before you go out with your " -"equipment." -msgstr "" -"Vergeet niet de weersvoorspelling te checken voordat je eropuit gaat met je " -"uitrusting." - -#: _kosmorro/dumper.py:333 -msgid "Ephemerides of the day" -msgstr "Efemeriden van de dag" - -#: _kosmorro/dumper.py:342 -msgid "hours" -msgstr "uren" - -#: _kosmorro/dumper.py:349 -msgid "Expected events" -msgstr "Verwachte events" - -#: _kosmorro/dumper.py:503 -#, fuzzy -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." -msgstr "" -"Het bouwen van pdf's was niet mogelijk, omdat sommige afhankelijkheden niet " -"zijn geïnstalleerd.\n" -"Raadpleeg de documentatie op http://kosmorro.space voor meer informatie." - -#: _kosmorro/dumper.py:556 -#, python-format -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" -msgstr "" -"Er is een fout opgetreden tijdens het samenstellen van de PDF.\n" -"Open a.u.b. een ticket op https://github.com/Kosmorro/kosmorro/issues and " -"share the content of the log file at /tmp/kosmorro-%s.log" - -#: _kosmorro/exceptions.py:34 -msgid "The date must be between {minimum_date} and {maximum_date}" -msgstr "De datum moet zijn tussen {minimum_date} en {maximum_date}" - -#: _kosmorro/main.py:62 +#: kosmorro/__main__.py:63 #, fuzzy msgid "" "Save the planet and paper!\n" @@ -146,7 +30,7 @@ msgstr "" "Overweeg om uw PDF-document alleen af te drukken als het echt nodig is, en " "gebruik de andere kant van het vel." -#: _kosmorro/main.py:71 +#: kosmorro/__main__.py:72 #, fuzzy msgid "" "PDF output will not contain the ephemerides, because you didn't provide the " @@ -155,26 +39,28 @@ msgstr "" "PDF-uitvoer bevat de efemeriden niet, omdat u de observatiecoördinaat niet " "hebt opgegeven." -#: _kosmorro/main.py:116 +#: kosmorro/__main__.py:117 #, fuzzy msgid "The file could not be saved in \"{path}\": {error}" msgstr "Kan de uitvoer niet opslaan in \"{path}\": {error}" -#: _kosmorro/main.py:130 +#: kosmorro/__main__.py:131 msgid "Please provide a file path to export in this format (--output)." msgstr "Geef een bestandspad op om in deze indeling te exporteren (--output)." -#: _kosmorro/main.py:163 -msgid "Moon phase can only be displayed between {min_date} and {max_date}" +#: kosmorro/__main__.py:164 +#, fuzzy +#| msgid "Moon phase can only be displayed between {min_date} and {max_date}" +msgid "Moon phase can only be computed between {min_date} and {max_date}" msgstr "Maanfase kan alleen worden weergegeven tussen {min_date} en {max_date}" -#: _kosmorro/main.py:202 +#: kosmorro/__main__.py:203 #, fuzzy msgid "" "Running on Python {python_version} with Kosmorrolib v{kosmorrolib_version}" msgstr "Draait op Python {python_version}" -#: _kosmorro/main.py:215 +#: kosmorro/__main__.py:216 msgid "" "Compute the ephemerides and the events for a given date and a given position " "on Earth." @@ -182,25 +68,30 @@ msgstr "" "Bereken de efemeriden en de gebeurtenissen voor een bepaalde datum en een " "bepaalde positie op aarde." -#: _kosmorro/main.py:218 +#: kosmorro/__main__.py:219 +#, fuzzy +#| msgid "" +#| "By default, only the events will be computed for today ({date}).\n" +#| "To compute also the ephemerides, latitude and longitude arguments are " +#| "needed." msgid "" -"By default, only the events will be computed for today ({date}).\n" +"By default, only the events will be computed for today.\n" "To compute also the ephemerides, latitude and longitude arguments are needed." msgstr "" "Standaard worden alleen de gebeurtenissen voor vandaag ({date}) berekend.\n" "Om ook de efemeriden te berekenen, zijn latitude- en longitude-argumenten " "nodig." -#: _kosmorro/main.py:232 +#: kosmorro/__main__.py:232 msgid "Show the program version" msgstr "Toon de programmaversie" -#: _kosmorro/main.py:240 +#: kosmorro/__main__.py:240 #, fuzzy msgid "The format to output the information to" msgstr "Het uitvoerformaat van de informatie" -#: _kosmorro/main.py:247 +#: kosmorro/__main__.py:247 msgid "" "The observer's latitude on Earth. Can also be set in the KOSMORRO_LATITUDE " "environment variable." @@ -208,7 +99,7 @@ msgstr "" "De breedtegraad van de waarnemer op aarde. Kan ook worden ingesteld in de " "omgevingsvariabele KOSMORRO_LATITUDE." -#: _kosmorro/main.py:257 +#: kosmorro/__main__.py:257 msgid "" "The observer's longitude on Earth. Can also be set in the KOSMORRO_LONGITUDE " "environment variable." @@ -216,17 +107,22 @@ msgstr "" "De lengtegraad van de waarnemer op aarde. Kan ook worden ingesteld in de " "omgevingsvariabele KOSMORRO_LONGITUDE." -#: _kosmorro/main.py:267 +#: kosmorro/__main__.py:267 +#, fuzzy +#| 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 today ({default_date})." 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 today ({default_date})." +"numbers). Defaults to current date." msgstr "" "De datum waarvoor de efemeriden berekend moeten worden. Kan de indeling JJJJ-" "MM-DD hebben of een interval in de indeling \"[+-]YyMmDd\" (met Y-, M- en D-" "nummers). Standaard ingesteld op vandaag ({default_date})." -#: _kosmorro/main.py:278 +#: 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." @@ -235,11 +131,11 @@ msgstr "" "-3 voor UTC-3). Kan ook worden ingesteld in de omgevingsvariabele " "KOSMORRO_TIMEZONE." -#: _kosmorro/main.py:287 +#: kosmorro/__main__.py:287 msgid "Disable the colors in the console." msgstr "Schakel de kleuren in de console uit." -#: _kosmorro/main.py:294 +#: 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." @@ -247,7 +143,7 @@ msgstr "" "Een bestand om de uitvoer naar te exporteren. Indien niet opgegeven, wordt " "de standaarduitvoer gebruikt. Dit argument is nodig voor het pdf-formaat." -#: _kosmorro/main.py:303 +#: kosmorro/__main__.py:303 #, fuzzy msgid "" "Do not generate a graph to represent the rise and set times in the PDF " @@ -256,125 +152,241 @@ msgstr "" "Genereer geen grafiek om de opkomst- en ondergangstijden in PDF-formaat weer " "te geven." -#: _kosmorro/main.py:311 +#: kosmorro/__main__.py:311 msgid "Show debugging messages" msgstr "Foutopsporingsberichten weergeven" -#: _kosmorro/i18n/strings.py:11 +#: kosmorro/date.py:17 +msgid "The date {date} is not valid: {error}" +msgstr "De datum {date} is niet geldig: {error}" + +#: kosmorro/date.py:39 +#, fuzzy +msgid "" +"The date {date} does not match the required YYYY-MM-DD format or the offset " +"format." +msgstr "" +"De datum {date} komt niet overeen met het vereiste JJJJ-MM-DD-formaat of het " +"offset-formaat." + +#: kosmorro/dumper.py:137 +msgid "Expected events:" +msgstr "Verwachte evenementen:" + +#: kosmorro/dumper.py:144 +msgid "Note: All the hours are given in UTC." +msgstr "Opmerking: alle uren worden gegeven in UTC." + +#: kosmorro/dumper.py:151 +msgid "Note: All the hours are given in the UTC{offset} timezone." +msgstr "Opmerking: alle uren worden gegeven in de UTC{offset} tijdzone." + +#: kosmorro/dumper.py:205 kosmorro/dumper.py:333 +msgid "Object" +msgstr "Object" + +#: kosmorro/dumper.py:206 kosmorro/dumper.py:334 +#, fuzzy +msgid "Rise time" +msgstr "Opgang tijd" + +#: kosmorro/dumper.py:207 kosmorro/dumper.py:336 +#, fuzzy +msgid "Culmination time" +msgstr "Culminatie tijd" + +#: kosmorro/dumper.py:208 kosmorro/dumper.py:338 +#, fuzzy +msgid "Set time" +msgstr "Ondergang tijd" + +#: kosmorro/dumper.py:234 +msgid "Moon phase is unavailable for this date." +msgstr "Maanfase is niet beschikbaar voor deze datum." + +#: kosmorro/dumper.py:238 kosmorro/dumper.py:342 +msgid "Moon phase:" +msgstr "Maanfase:" + +#: kosmorro/dumper.py:242 +msgid "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}" +msgstr "{next_moon_phase} op {next_moon_phase_date} om {next_moon_phase_time}" + +#: kosmorro/dumper.py:306 +msgid "Overview of your sky" +msgstr "Overzicht van uw hemel" + +#: kosmorro/dumper.py:314 +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}." +msgstr "" +"Dit document vat de efemeriden en de gebeurtenissen van {date} samen. Het is " +"bedoeld om u te helpen bij het voorbereiden van uw observatiesessie. Alle " +"uren worden gegeven in {timezone}." + +#: kosmorro/dumper.py:324 +msgid "" +"Don't forget to check the weather forecast before you go out with your " +"equipment." +msgstr "" +"Vergeet niet de weersvoorspelling te checken voordat je eropuit gaat met je " +"uitrusting." + +#: kosmorro/dumper.py:331 +msgid "Ephemerides of the day" +msgstr "Efemeriden van de dag" + +#: kosmorro/dumper.py:340 +msgid "hours" +msgstr "uren" + +#: kosmorro/dumper.py:347 +msgid "Expected events" +msgstr "Verwachte events" + +#: kosmorro/dumper.py:487 +#, fuzzy +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." +msgstr "" +"Het bouwen van pdf's was niet mogelijk, omdat sommige afhankelijkheden niet " +"zijn geïnstalleerd.\n" +"Raadpleeg de documentatie op http://kosmorro.space voor meer informatie." + +#: kosmorro/dumper.py:540 +#, python-format +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" +msgstr "" +"Er is een fout opgetreden tijdens het samenstellen van de PDF.\n" +"Open a.u.b. een ticket op https://github.com/Kosmorro/kosmorro/issues and " +"share the content of the log file at /tmp/kosmorro-%s.log" + +#: kosmorro/exceptions.py:35 +msgid "The date must be between {minimum_date} and {maximum_date}" +msgstr "De datum moet zijn tussen {minimum_date} en {maximum_date}" + +#: kosmorro/i18n/strings.py:11 #, fuzzy, python-format msgid "%s is in opposition" msgstr "%s is in oppositie" -#: _kosmorro/i18n/strings.py:12 +#: kosmorro/i18n/strings.py:12 #, fuzzy, python-format msgid "%s and %s are in conjunction" msgstr "%s en %s zijn in conjunctie" -#: _kosmorro/i18n/strings.py:13 +#: kosmorro/i18n/strings.py:13 #, fuzzy, python-format msgid "%s occults %s" msgstr "%s verbergt %s" -#: _kosmorro/i18n/strings.py:15 +#: kosmorro/i18n/strings.py:15 #, fuzzy, python-format msgid "Elongation of %s is maximal" msgstr "Verlenging van %s is maximaal" -#: _kosmorro/i18n/strings.py:18 +#: kosmorro/i18n/strings.py:18 #, python-format msgid "%s is at its perigee" msgstr "%s is op zijn perigeum" -#: _kosmorro/i18n/strings.py:19 +#: kosmorro/i18n/strings.py:19 #, python-format msgid "%s is at its apogee" msgstr "%s is op zijn apogeum" -#: _kosmorro/i18n/strings.py:35 +#: kosmorro/i18n/strings.py:35 msgid "New Moon" msgstr "Nieuwe maan" -#: _kosmorro/i18n/strings.py:36 +#: kosmorro/i18n/strings.py:36 msgid "Waxing Crescent" msgstr "Jonge maansikkel" -#: _kosmorro/i18n/strings.py:37 +#: kosmorro/i18n/strings.py:37 msgid "First Quarter" msgstr "Eerste kwartier" -#: _kosmorro/i18n/strings.py:38 +#: kosmorro/i18n/strings.py:38 msgid "Waxing Gibbous" msgstr "Wassende maan" -#: _kosmorro/i18n/strings.py:39 +#: kosmorro/i18n/strings.py:39 msgid "Full Moon" msgstr "Volle maan" -#: _kosmorro/i18n/strings.py:40 +#: kosmorro/i18n/strings.py:40 msgid "Waning Gibbous" msgstr "Krimpende maan" -#: _kosmorro/i18n/strings.py:41 +#: kosmorro/i18n/strings.py:41 msgid "Last Quarter" msgstr "Laatste kwartier" -#: _kosmorro/i18n/strings.py:42 +#: kosmorro/i18n/strings.py:42 msgid "Waning Crescent" msgstr "Asgrauwe maan" -#: _kosmorro/i18n/strings.py:53 +#: kosmorro/i18n/strings.py:53 msgid "Sun" msgstr "Zon" -#: _kosmorro/i18n/strings.py:54 +#: kosmorro/i18n/strings.py:54 msgid "Moon" msgstr "Maan" -#: _kosmorro/i18n/strings.py:55 +#: kosmorro/i18n/strings.py:55 msgid "Mercury" msgstr "Mercurius" -#: _kosmorro/i18n/strings.py:56 +#: kosmorro/i18n/strings.py:56 msgid "Venus" msgstr "Venus" -#: _kosmorro/i18n/strings.py:57 +#: kosmorro/i18n/strings.py:57 msgid "Mars" msgstr "Mars" -#: _kosmorro/i18n/strings.py:58 +#: kosmorro/i18n/strings.py:58 msgid "Jupiter" msgstr "Jupiter" -#: _kosmorro/i18n/strings.py:59 +#: kosmorro/i18n/strings.py:59 msgid "Saturn" msgstr "Saturnus" -#: _kosmorro/i18n/strings.py:60 +#: kosmorro/i18n/strings.py:60 msgid "Uranus" msgstr "Uranus" -#: _kosmorro/i18n/strings.py:61 +#: kosmorro/i18n/strings.py:61 msgid "Neptune" msgstr "Neptunus" -#: _kosmorro/i18n/strings.py:62 +#: kosmorro/i18n/strings.py:62 msgid "Pluto" msgstr "Pluto" -#: _kosmorro/i18n/utils.py:27 +#: kosmorro/i18n/utils.py:27 msgid "{day_of_week} {month} {day_number}, {year}" msgstr "{day_of_week} {month} {day_number} {year}" -#: _kosmorro/i18n/utils.py:30 +#: kosmorro/i18n/utils.py:30 msgid "{month} {day_number}, {hours}:{minutes}" msgstr "{month} {day_number}, {hours}:{minutes}" -#: _kosmorro/i18n/utils.py:33 +#: kosmorro/i18n/utils.py:33 msgid "{month} {day_number}, {year}" msgstr "{month} {day_number}, {year}" -#: _kosmorro/i18n/utils.py:36 +#: kosmorro/i18n/utils.py:36 msgid "{hours}:{minutes}" msgstr "{hours}:{minutes}" diff --git a/_kosmorro/locales/ru/LC_MESSAGES/messages.po b/kosmorro/locales/ru/LC_MESSAGES/messages.po similarity index 73% rename from _kosmorro/locales/ru/LC_MESSAGES/messages.po rename to kosmorro/locales/ru/LC_MESSAGES/messages.po index bc1aea9..b509c7f 100644 --- a/_kosmorro/locales/ru/LC_MESSAGES/messages.po +++ b/kosmorro/locales/ru/LC_MESSAGES/messages.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: kosmorro 0.9.0\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-11-20 12:12+0100\n" -"PO-Revision-Date: 2021-07-30 10:33+0000\n" -"Last-Translator: Stalone \n" +"POT-Creation-Date: 2022-03-19 13:28+0100\n" +"PO-Revision-Date: 2022-03-19 17:51+0000\n" +"Last-Translator: Anonymous \n" "Language-Team: Russian \n" "Language: ru\n" @@ -18,65 +18,161 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.7.2-dev\n" +"X-Generator: Weblate 4.12-dev\n" "Generated-By: Babel 2.9.0\n" -#: _kosmorro/date.py:17 +#: 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 "" + +#: kosmorro/__main__.py:72 +msgid "" +"PDF output will not contain the ephemerides, because you didn't provide the " +"observation coordinates." +msgstr "" + +#: kosmorro/__main__.py:117 +msgid "The file could not be saved in \"{path}\": {error}" +msgstr "" + +#: kosmorro/__main__.py:131 +msgid "Please provide a file path to export in this format (--output)." +msgstr "" + +#: kosmorro/__main__.py:164 +msgid "Moon phase can only be computed between {min_date} and {max_date}" +msgstr "" + +#: kosmorro/__main__.py:203 +#, fuzzy +msgid "" +"Running on Python {python_version} with Kosmorrolib v{kosmorrolib_version}" +msgstr "Работают под Python {python_version}" + +#: kosmorro/__main__.py:216 +msgid "" +"Compute the ephemerides and the events for a given date and a given position " +"on Earth." +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." +msgstr "" + +#: kosmorro/__main__.py:232 +msgid "Show the program version" +msgstr "Показать версия программы" + +#: kosmorro/__main__.py:240 +msgid "The format to output the information to" +msgstr "" + +#: kosmorro/__main__.py:247 +msgid "" +"The observer's latitude on Earth. Can also be set in the KOSMORRO_LATITUDE " +"environment variable." +msgstr "" + +#: kosmorro/__main__.py:257 +msgid "" +"The observer's longitude on Earth. Can also be set in the KOSMORRO_LONGITUDE " +"environment variable." +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." +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." +msgstr "" + +#: kosmorro/__main__.py:287 +msgid "Disable the colors in the console." +msgstr "" + +#: 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 "" + +#: kosmorro/__main__.py:303 +msgid "" +"Do not generate a graph to represent the rise and set times in the PDF " +"format." +msgstr "" + +#: kosmorro/__main__.py:311 +msgid "Show debugging messages" +msgstr "" + +#: kosmorro/date.py:17 msgid "The date {date} is not valid: {error}" msgstr "Дата {date} - неправильно" -#: _kosmorro/date.py:39 +#: kosmorro/date.py:39 #, fuzzy msgid "" "The date {date} does not match the required YYYY-MM-DD format or the offset " "format." msgstr "Дата {date} не соответствовать требуемому формату YYYY-MM-DD или ???" -#: _kosmorro/dumper.py:120 +#: kosmorro/dumper.py:137 msgid "Expected events:" msgstr "Ожидаемые события:" -#: _kosmorro/dumper.py:127 +#: kosmorro/dumper.py:144 msgid "Note: All the hours are given in UTC." msgstr "Примечание: все время указано в формате UTC." -#: _kosmorro/dumper.py:134 +#: kosmorro/dumper.py:151 msgid "Note: All the hours are given in the UTC{offset} timezone." msgstr "Примечание: все часы указаны по UTC{offset} времени." -#: _kosmorro/dumper.py:202 _kosmorro/dumper.py:335 +#: kosmorro/dumper.py:205 kosmorro/dumper.py:333 msgid "Object" msgstr "Объект" -#: _kosmorro/dumper.py:203 _kosmorro/dumper.py:336 +#: kosmorro/dumper.py:206 kosmorro/dumper.py:334 msgid "Rise time" msgstr "" -#: _kosmorro/dumper.py:204 _kosmorro/dumper.py:338 +#: kosmorro/dumper.py:207 kosmorro/dumper.py:336 msgid "Culmination time" msgstr "Кульминация момент" -#: _kosmorro/dumper.py:205 _kosmorro/dumper.py:340 +#: kosmorro/dumper.py:208 kosmorro/dumper.py:338 msgid "Set time" msgstr "" -#: _kosmorro/dumper.py:236 +#: kosmorro/dumper.py:234 msgid "Moon phase is unavailable for this date." msgstr "" -#: _kosmorro/dumper.py:240 _kosmorro/dumper.py:344 +#: kosmorro/dumper.py:238 kosmorro/dumper.py:342 msgid "Moon phase:" msgstr "" -#: _kosmorro/dumper.py:244 +#: kosmorro/dumper.py:242 msgid "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}" msgstr "{next_moon_phase} в {next_moon_phase_date} в {next_moon_phase_time}" -#: _kosmorro/dumper.py:308 +#: kosmorro/dumper.py:306 msgid "Overview of your sky" msgstr "" -#: _kosmorro/dumper.py:316 +#: kosmorro/dumper.py:314 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 " @@ -85,32 +181,32 @@ msgstr "" "Этот документ резюмирует эфемериды и события {date}. Это поможет вам " "подготовиться к сеансу наблюдения. Все часы указаны по {timezone}." -#: _kosmorro/dumper.py:326 +#: kosmorro/dumper.py:324 msgid "" "Don't forget to check the weather forecast before you go out with your " "equipment." msgstr "" -#: _kosmorro/dumper.py:333 +#: kosmorro/dumper.py:331 msgid "Ephemerides of the day" msgstr "" -#: _kosmorro/dumper.py:342 +#: kosmorro/dumper.py:340 msgid "hours" msgstr "" -#: _kosmorro/dumper.py:349 +#: kosmorro/dumper.py:347 msgid "Expected events" msgstr "" -#: _kosmorro/dumper.py:503 +#: 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." msgstr "" -#: _kosmorro/dumper.py:556 +#: kosmorro/dumper.py:540 #, python-format msgid "" "An error occurred during the compilation of the PDF.\n" @@ -118,221 +214,125 @@ msgid "" "share the content of the log file at /tmp/kosmorro-%s.log" msgstr "" -#: _kosmorro/exceptions.py:34 +#: kosmorro/exceptions.py:35 msgid "The date must be between {minimum_date} and {maximum_date}" msgstr "" -#: _kosmorro/main.py:62 -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 "" - -#: _kosmorro/main.py:71 -msgid "" -"PDF output will not contain the ephemerides, because you didn't provide the " -"observation coordinates." -msgstr "" - -#: _kosmorro/main.py:116 -msgid "The file could not be saved in \"{path}\": {error}" -msgstr "" - -#: _kosmorro/main.py:130 -msgid "Please provide a file path to export in this format (--output)." -msgstr "" - -#: _kosmorro/main.py:163 -msgid "Moon phase can only be displayed between {min_date} and {max_date}" -msgstr "" - -#: _kosmorro/main.py:202 -#, fuzzy -msgid "" -"Running on Python {python_version} with Kosmorrolib v{kosmorrolib_version}" -msgstr "Работают под Python {python_version}" - -#: _kosmorro/main.py:215 -msgid "" -"Compute the ephemerides and the events for a given date and a given position " -"on Earth." -msgstr "" - -#: _kosmorro/main.py:218 -msgid "" -"By default, only the events will be computed for today ({date}).\n" -"To compute also the ephemerides, latitude and longitude arguments are needed." -msgstr "" - -#: _kosmorro/main.py:232 -msgid "Show the program version" -msgstr "Показать версия программы" - -#: _kosmorro/main.py:240 -msgid "The format to output the information to" -msgstr "" - -#: _kosmorro/main.py:247 -msgid "" -"The observer's latitude on Earth. Can also be set in the KOSMORRO_LATITUDE " -"environment variable." -msgstr "" - -#: _kosmorro/main.py:257 -msgid "" -"The observer's longitude on Earth. Can also be set in the KOSMORRO_LONGITUDE " -"environment variable." -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 today ({default_date})." -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." -msgstr "" - -#: _kosmorro/main.py:287 -msgid "Disable the colors in the console." -msgstr "" - -#: _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 "" - -#: _kosmorro/main.py:303 -msgid "" -"Do not generate a graph to represent the rise and set times in the PDF " -"format." -msgstr "" - -#: _kosmorro/main.py:311 -msgid "Show debugging messages" -msgstr "" - -#: _kosmorro/i18n/strings.py:11 +#: kosmorro/i18n/strings.py:11 #, python-format msgid "%s is in opposition" msgstr "" -#: _kosmorro/i18n/strings.py:12 +#: kosmorro/i18n/strings.py:12 #, python-format msgid "%s and %s are in conjunction" msgstr "" -#: _kosmorro/i18n/strings.py:13 +#: kosmorro/i18n/strings.py:13 #, python-format msgid "%s occults %s" msgstr "" -#: _kosmorro/i18n/strings.py:15 +#: kosmorro/i18n/strings.py:15 #, python-format msgid "Elongation of %s is maximal" msgstr "" -#: _kosmorro/i18n/strings.py:18 +#: kosmorro/i18n/strings.py:18 #, python-format msgid "%s is at its perigee" msgstr "" -#: _kosmorro/i18n/strings.py:19 +#: kosmorro/i18n/strings.py:19 #, python-format msgid "%s is at its apogee" msgstr "" -#: _kosmorro/i18n/strings.py:35 +#: kosmorro/i18n/strings.py:35 msgid "New Moon" msgstr "Новолуние" -#: _kosmorro/i18n/strings.py:36 +#: kosmorro/i18n/strings.py:36 msgid "Waxing Crescent" msgstr "Молодая луна" -#: _kosmorro/i18n/strings.py:37 +#: kosmorro/i18n/strings.py:37 msgid "First Quarter" msgstr "Первая четверть" -#: _kosmorro/i18n/strings.py:38 +#: kosmorro/i18n/strings.py:38 msgid "Waxing Gibbous" msgstr "Прибывающая луна" -#: _kosmorro/i18n/strings.py:39 +#: kosmorro/i18n/strings.py:39 msgid "Full Moon" msgstr "Полнолуние" -#: _kosmorro/i18n/strings.py:40 +#: kosmorro/i18n/strings.py:40 msgid "Waning Gibbous" msgstr "Убывающая луна" -#: _kosmorro/i18n/strings.py:41 +#: kosmorro/i18n/strings.py:41 msgid "Last Quarter" msgstr "Последняя четверть" -#: _kosmorro/i18n/strings.py:42 +#: kosmorro/i18n/strings.py:42 msgid "Waning Crescent" msgstr "Старая луна" -#: _kosmorro/i18n/strings.py:53 +#: kosmorro/i18n/strings.py:53 msgid "Sun" msgstr "Солнце" -#: _kosmorro/i18n/strings.py:54 +#: kosmorro/i18n/strings.py:54 msgid "Moon" msgstr "Луна" -#: _kosmorro/i18n/strings.py:55 +#: kosmorro/i18n/strings.py:55 msgid "Mercury" msgstr "Меркурий" -#: _kosmorro/i18n/strings.py:56 +#: kosmorro/i18n/strings.py:56 msgid "Venus" msgstr "Венера" -#: _kosmorro/i18n/strings.py:57 +#: kosmorro/i18n/strings.py:57 msgid "Mars" msgstr "Марс" -#: _kosmorro/i18n/strings.py:58 +#: kosmorro/i18n/strings.py:58 msgid "Jupiter" msgstr "Юпитер" -#: _kosmorro/i18n/strings.py:59 +#: kosmorro/i18n/strings.py:59 msgid "Saturn" msgstr "Сатурн" -#: _kosmorro/i18n/strings.py:60 +#: kosmorro/i18n/strings.py:60 msgid "Uranus" msgstr "Уран" -#: _kosmorro/i18n/strings.py:61 +#: kosmorro/i18n/strings.py:61 msgid "Neptune" msgstr "Нептун" -#: _kosmorro/i18n/strings.py:62 +#: kosmorro/i18n/strings.py:62 msgid "Pluto" msgstr "Плутон" -#: _kosmorro/i18n/utils.py:27 +#: kosmorro/i18n/utils.py:27 msgid "{day_of_week} {month} {day_number}, {year}" msgstr "{day_of_week}, {day_number} {month} {year} г." -#: _kosmorro/i18n/utils.py:30 +#: kosmorro/i18n/utils.py:30 msgid "{month} {day_number}, {hours}:{minutes}" msgstr "{month} {day_number}, {hours}:{minutes}" -#: _kosmorro/i18n/utils.py:33 +#: kosmorro/i18n/utils.py:33 msgid "{month} {day_number}, {year}" msgstr "{month} {day_number}, {year}" -#: _kosmorro/i18n/utils.py:36 +#: kosmorro/i18n/utils.py:36 msgid "{hours}:{minutes}" msgstr "{hours}:{minutes}" diff --git a/kosmorro/utils.py b/kosmorro/utils.py new file mode 100644 index 0000000..2d42e82 --- /dev/null +++ b/kosmorro/utils.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 + +from termcolor import colored as do_color + +try: + from importlib.metadata import version +except ImportError: + from importlib_metadata import version + +KOSMORRO_VERSION = version("kosmorro") +KOSMORROLIB_VERSION = version("kosmorrolib") + + +global _COLORS_ACTIVATED + + +def set_colors_activated(activated: bool): + global _COLORS_ACTIVATED + _COLORS_ACTIVATED = activated + + +def colored(text, color=None, on_color=None, attrs=None): + """Decorator to use colors only when they are activated""" + if not _COLORS_ACTIVATED: + return text + + return do_color(text, color, on_color, attrs) diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..4d807e0 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,593 @@ +[[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 = "22.1.0" +description = "The uncompromising code formatter." +category = "dev" +optional = false +python-versions = ">=3.6.2" + +[package.dependencies] +click = ">=8.0.0" +mypy-extensions = ">=0.4.3" +pathspec = ">=0.9.0" +platformdirs = ">=2" +tomli = ">=1.1.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\""} + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.7.4)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +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 = "main" +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 = "2022.1" +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 = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "zipp" +version = "3.7.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" +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 = "351d9199cffd4c1ad1b234c67a8f463b54d724b24215745584cb4555cf13283c" + +[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-22.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1297c63b9e1b96a3d0da2d85d11cd9bf8664251fd69ddac068b98dc4f34f73b6"}, + {file = "black-22.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2ff96450d3ad9ea499fc4c60e425a1439c2120cbbc1ab959ff20f7c76ec7e866"}, + {file = "black-22.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e21e1f1efa65a50e3960edd068b6ae6d64ad6235bd8bfea116a03b21836af71"}, + {file = "black-22.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2f69158a7d120fd641d1fa9a921d898e20d52e44a74a6fbbcc570a62a6bc8ab"}, + {file = "black-22.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:228b5ae2c8e3d6227e4bde5920d2fc66cc3400fde7bcc74f480cb07ef0b570d5"}, + {file = "black-22.1.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b1a5ed73ab4c482208d20434f700d514f66ffe2840f63a6252ecc43a9bc77e8a"}, + {file = "black-22.1.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35944b7100af4a985abfcaa860b06af15590deb1f392f06c8683b4381e8eeaf0"}, + {file = "black-22.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:7835fee5238fc0a0baf6c9268fb816b5f5cd9b8793423a75e8cd663c48d073ba"}, + {file = "black-22.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dae63f2dbf82882fa3b2a3c49c32bffe144970a573cd68d247af6560fc493ae1"}, + {file = "black-22.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fa1db02410b1924b6749c245ab38d30621564e658297484952f3d8a39fce7e8"}, + {file = "black-22.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c8226f50b8c34a14608b848dc23a46e5d08397d009446353dad45e04af0c8e28"}, + {file = "black-22.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2d6f331c02f0f40aa51a22e479c8209d37fcd520c77721c034517d44eecf5912"}, + {file = "black-22.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:742ce9af3086e5bd07e58c8feb09dbb2b047b7f566eb5f5bc63fd455814979f3"}, + {file = "black-22.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fdb8754b453fb15fad3f72cd9cad3e16776f0964d67cf30ebcbf10327a3777a3"}, + {file = "black-22.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5660feab44c2e3cb24b2419b998846cbb01c23c7fe645fee45087efa3da2d61"}, + {file = "black-22.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:6f2f01381f91c1efb1451998bd65a129b3ed6f64f79663a55fe0e9b74a5f81fd"}, + {file = "black-22.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:efbadd9b52c060a8fc3b9658744091cb33c31f830b3f074422ed27bad2b18e8f"}, + {file = "black-22.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8871fcb4b447206904932b54b567923e5be802b9b19b744fdff092bd2f3118d0"}, + {file = "black-22.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ccad888050f5393f0d6029deea2a33e5ae371fd182a697313bdbd835d3edaf9c"}, + {file = "black-22.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07e5c049442d7ca1a2fc273c79d1aecbbf1bc858f62e8184abe1ad175c4f7cc2"}, + {file = "black-22.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:373922fc66676133ddc3e754e4509196a8c392fec3f5ca4486673e685a421321"}, + {file = "black-22.1.0-py3-none-any.whl", hash = "sha256:3524739d76b6b3ed1132422bf9d82123cd1705086723bc3e235ca39fd21c667d"}, + {file = "black-22.1.0.tar.gz", hash = "sha256:a7c0192d35635f6fc1174be575cb7915e92e5dd629ee79fdaf0dcfa41a80afb5"}, +] +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-2022.1-py2.py3-none-any.whl", hash = "sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c"}, + {file = "pytz-2022.1.tar.gz", hash = "sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7"}, +] +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"}, +] diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..31eae86 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,33 @@ +[tool.poetry] +name = "kosmorro" +version = "0.10.10" +description = "A program to compute the ephemerides." +authors = ["Jérôme Deuchnord "] +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" +importlib-metadata = "^4.11" + +[tool.poetry.dev-dependencies] +black = "^22.1" +pytest = "^7.0" +aurornis = "^1.2" + +[build-system] +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry.core.masonry.api" diff --git a/setup.cfg b/setup.cfg index 089fb4b..2a8fe64 100644 --- a/setup.cfg +++ b/setup.cfg @@ -2,11 +2,11 @@ charset = utf-8 keywords = _ ngettext width = 120 -output_file = _kosmorro/locales/messages.pot +output_file = kosmorro/locales/messages.pot omit_header = true copyright_holder = Jérôme Deuchnord -input_paths=kosmorro,_kosmorro +input_paths=kosmorro [compile_catalog] domain = messages -directory = _kosmorro/locales +directory = kosmorro/locales diff --git a/setup.py b/setup.py index 8cc8d8b..e69de29 100644 --- a/setup.py +++ b/setup.py @@ -1,60 +0,0 @@ -#!/usr/bin/env python3 - -# Kosmorro - Compute The Next Ephemerides -# Copyright (C) 2019 Jérôme Deuchnord -# -# 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 . - -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", - "openlocationcode", - ], - classifiers=[ - "Development Status :: 3 - Alpha", - "Operating System :: POSIX :: Linux", - "Operating System :: MacOS :: MacOS X", - "Environment :: Console", - "Topic :: Scientific/Engineering :: Astronomy", - ], - python_requires=">=3.7", -) diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/dates.py b/tests/dates.py new file mode 100644 index 0000000..2e6f0a9 --- /dev/null +++ b/tests/dates.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 + +from .utils import execute, KOSMORRO + + +def test_with_date(): + for arg in [["-d", "2020-01-27"], ["--date", "2020-01-27"], ["-d2020-01-27"]]: + result = execute(KOSMORRO + arg) + assert result.is_successful() + + assert ( + result.stdout + == """Monday, January 27, 2020 + +Moon phase: New Moon +First Quarter on Sunday, February 2, 2020 at 1:41 AM + +Expected events: +8:00 PM Venus and Neptune are in conjunction + +Note: All the hours are given in UTC. +""" + ) + + +def test_with_incorrect_date_values(): + value = "yolo-yo-lo" + for arg in [["-d", value], ["--date", value], [f"-d{value}"]]: + result = execute(KOSMORRO + arg) + assert not result.is_successful() + assert ( + result.stdout + == f"The date {value} does not match the required YYYY-MM-DD format or the offset format.\n" + ) + + value = "2020-13-32" + for arg in [["-d", value], ["--date", value], [f"-d{value}"]]: + result = execute(KOSMORRO + arg) + assert not result.is_successful() + assert ( + result.stdout == f"The date {value} is not valid: month must be in 1..12\n" + ) + + +def test_with_out_of_range_dates(): + for arg in [["-d", "1789-05-05"], ["-d", "3000-01-01"]]: + result = execute(KOSMORRO + arg) + assert not result.is_successful() + assert ( + result.stdout + == "Moon phase can only be computed between August 9, 1899 and September 26, 2053\n" + ) diff --git a/tests/general.py b/tests/general.py new file mode 100644 index 0000000..c7f8462 --- /dev/null +++ b/tests/general.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python3 + +from sys import version_info +from .utils import ( + execute, + KOSMORRO, + CURRENT_MOON_PHASE_PATTERN, + NEXT_MOON_PHASE_PATTERN, +) +from datetime import date +from babel.dates import format_date + + +def test_run_without_argument(): + result = execute(KOSMORRO) + assert result.is_successful() + + stdout = result.stdout.split("\n") + print(stdout) + + # It always starts with the current date, an empty line and the current and next Moon date: + assert stdout[0] == format_date(date.today(), "full") + assert stdout[1] == "" + assert CURRENT_MOON_PHASE_PATTERN.match(stdout[2]) + assert NEXT_MOON_PHASE_PATTERN.match(stdout[3]) + + # It always finishes with an empty line, a note about UTC timezone and an empty line: + assert stdout[-3] == "" + assert stdout[-2] == "Note: All the hours are given in UTC." + assert stdout[-1] == "" + + +def test_help_message(): + python_version = (version_info.major, version_info.minor) + + for arg in ["--help", "-h"]: + result = execute(KOSMORRO + [arg]) + assert result.is_successful() + + # Options header has changed from "optional arguments" to "options" in Python 3.10. + options_header = ( + "options" if python_version == (3, 10) else "optional arguments" + ) + + assert ( + result.stdout + == """usage: kosmorro [-h] [--version] [--format {text,json,pdf}] + [--latitude LATITUDE] [--longitude LONGITUDE] [--date DATE] + [--timezone TIMEZONE] [--no-colors] [--output OUTPUT] + [--no-graph] [--debug] + +Compute the ephemerides and the events for a given date and a given position +on Earth. + +%s: + -h, --help show this help message and exit + --version, -v Show the program version + --format {text,json,pdf}, -f {text,json,pdf} + The format to output the information to + --latitude LATITUDE, -lat LATITUDE + The observer's latitude on Earth. Can also be set in + the KOSMORRO_LATITUDE environment variable. + --longitude LONGITUDE, -lon LONGITUDE + The observer's longitude on Earth. Can also be set in + the KOSMORRO_LONGITUDE environment variable. + --date DATE, -d DATE 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. + --timezone TIMEZONE, -t 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. + --no-colors Disable the colors in the console. + --output OUTPUT, -o OUTPUT + A file to export the output to. If not given, the + standard output is used. This argument is needed for + PDF format. + --no-graph Do not generate a graph to represent the rise and set + times in the PDF format. + --debug Show debugging messages + +By default, only the events will be computed for today. To compute also the +ephemerides, latitude and longitude arguments are needed. +""" + % options_header + ) diff --git a/tests/output.py b/tests/output.py new file mode 100644 index 0000000..d466f26 --- /dev/null +++ b/tests/output.py @@ -0,0 +1,195 @@ +#!/usr/bin/env python3 + +from .utils import ( + execute, + KOSMORRO, +) +import tempfile +from os import path, environ +from sys import platform + + +def test_json_output(): + result = execute( + KOSMORRO + + ["--latitude=50.5876", "--longitude=3.0624", "-d2020-01-27", "--format=json"] + ) + assert result.is_successful() + assert ( + result.stdout + == """{ + "ephemerides": [ + { + "object": { + "identifier": "SUN", + "type": "STAR", + "radius": 696342 + }, + "rise_time": "2020-01-27T07:31:00", + "culmination_time": "2020-01-27T12:01:00", + "set_time": "2020-01-27T16:30:00" + }, + { + "object": { + "identifier": "MOON", + "type": "SATELLITE", + "radius": 1737.4 + }, + "rise_time": "2020-01-27T09:06:00", + "culmination_time": "2020-01-27T14:09:00", + "set_time": "2020-01-27T19:13:00" + }, + { + "object": { + "identifier": "MERCURY", + "type": "PLANET", + "radius": 2439.7 + }, + "rise_time": "2020-01-27T08:10:00", + "culmination_time": "2020-01-27T12:49:00", + "set_time": "2020-01-27T17:28:00" + }, + { + "object": { + "identifier": "VENUS", + "type": "PLANET", + "radius": 6051.8 + }, + "rise_time": "2020-01-27T09:01:00", + "culmination_time": "2020-01-27T14:35:00", + "set_time": "2020-01-27T20:10:00" + }, + { + "object": { + "identifier": "MARS", + "type": "PLANET", + "radius": 3396.2 + }, + "rise_time": "2020-01-27T04:19:00", + "culmination_time": "2020-01-27T08:23:00", + "set_time": "2020-01-27T12:28:00" + }, + { + "object": { + "identifier": "JUPITER", + "type": "PLANET", + "radius": 71492 + }, + "rise_time": "2020-01-27T06:15:00", + "culmination_time": "2020-01-27T10:18:00", + "set_time": "2020-01-27T14:21:00" + }, + { + "object": { + "identifier": "SATURN", + "type": "PLANET", + "radius": 60268 + }, + "rise_time": "2020-01-27T06:56:00", + "culmination_time": "2020-01-27T11:09:00", + "set_time": "2020-01-27T15:22:00" + }, + { + "object": { + "identifier": "URANUS", + "type": "PLANET", + "radius": 25559 + }, + "rise_time": "2020-01-27T10:21:00", + "culmination_time": "2020-01-27T17:25:00", + "set_time": "2020-01-27T00:33:00" + }, + { + "object": { + "identifier": "NEPTUNE", + "type": "PLANET", + "radius": 24764 + }, + "rise_time": "2020-01-27T09:01:00", + "culmination_time": "2020-01-27T14:36:00", + "set_time": "2020-01-27T20:10:00" + }, + { + "object": { + "identifier": "PLUTO", + "type": "PLANET", + "radius": 1185 + }, + "rise_time": "2020-01-27T06:57:00", + "culmination_time": "2020-01-27T11:04:00", + "set_time": "2020-01-27T15:11:00" + } + ], + "moon_phase": { + "phase": "NEW_MOON", + "time": "2020-01-24T21:41:59.705921+00:00", + "next": { + "phase": "FIRST_QUARTER", + "time": "2020-02-02T01:41:40.282275+00:00" + } + }, + "events": [ + { + "objects": [ + { + "identifier": "VENUS", + "type": "PLANET", + "radius": 6051.8 + }, + { + "identifier": "NEPTUNE", + "type": "PLANET", + "radius": 24764 + } + ], + "EventType": "CONJUNCTION", + "starts_at": "2020-01-27T20:00:23.242750+00:00", + "ends_at": null, + "details": null + } + ] +} +""" + ) + + +def test_pdf_output(): + if platform != "linux": + # Consider it works everywhere if it does at least on Linux + return + + tmp_dir = tempfile.mkdtemp() + result = execute( + KOSMORRO + + [ + "--latitude=50.5876", + "--longitude=3.0624", + "-d2020-01-27", + "--format=pdf", + f"--output={tmp_dir}/document.pdf", + ] + ) + + if environ.get("TEXLIVE_INSTALLED") is None: + assert not result.is_successful() + assert ( + result.stdout + == """Save the planet and paper! +Consider printing your PDF document only if really necessary, and use the other side of the sheet. +Building PDF was not possible, because some dependencies are not installed. +Please look at the documentation at https://kosmorro.space/cli/generate-pdf/ for more information. +""" + ) + + return + + assert result.is_successful() + assert ( + result.stdout + == """Save the planet and paper! +Consider printing your PDF document only if really necessary, and use the other side of the sheet. +""" + "" + ) + + assert path.exists(f"{tmp_dir}/document.pdf") diff --git a/tests/position.py b/tests/position.py new file mode 100644 index 0000000..1912d1a --- /dev/null +++ b/tests/position.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 + +from .utils import ( + execute, + KOSMORRO, +) + + +def check_command_return(result): + assert result.is_successful() + assert ( + result.stdout + == """Monday, January 27, 2020 + +Object Rise time Culmination time Set time +-------- ----------- ------------------ ---------- +Sun 7:31 AM 12:01 PM 4:30 PM +Moon 9:06 AM 2:09 PM 7:13 PM +Mercury 8:10 AM 12:49 PM 5:28 PM +Venus 9:01 AM 2:35 PM 8:10 PM +Mars 4:19 AM 8:23 AM 12:28 PM +Jupiter 6:15 AM 10:18 AM 2:21 PM +Saturn 6:56 AM 11:09 AM 3:22 PM +Uranus 10:21 AM 5:25 PM 12:33 AM +Neptune 9:01 AM 2:36 PM 8:10 PM +Pluto 6:57 AM 11:04 AM 3:11 PM + +Moon phase: New Moon +First Quarter on Sunday, February 2, 2020 at 1:41 AM + +Expected events: +8:00 PM Venus and Neptune are in conjunction + +Note: All the hours are given in UTC. +""" + ) + + +def test_with_position(): + result = execute( + KOSMORRO + ["--latitude=50.5876", "--longitude=3.0624", "-d2020-01-27"] + ) + check_command_return(result) + + +def test_with_position_env_vars(): + check_command_return( + execute( + KOSMORRO + ["-d2020-01-27"], + environment={ + "KOSMORRO_LATITUDE": "50.5876", + "KOSMORRO_LONGITUDE": "3.0624", + }, + ) + ) diff --git a/tests/timezone.py b/tests/timezone.py new file mode 100644 index 0000000..4972fd4 --- /dev/null +++ b/tests/timezone.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 + +from .utils import ( + execute, + KOSMORRO, +) + + +def check_command_return_t_plus_one(result): + assert result.is_successful() + assert ( + result.stdout + == """Monday, January 27, 2020 + +Moon phase: New Moon +First Quarter on Sunday, February 2, 2020 at 2:41 AM + +Expected events: +9:00 PM Venus and Neptune are in conjunction + +Note: All the hours are given in the UTC+1 timezone. +""" + ) + + +def check_command_return_t_minus_one(result): + assert result.is_successful() + assert ( + result.stdout + == """Monday, January 27, 2020 + +Moon phase: New Moon +First Quarter on Sunday, February 2, 2020 at 12:41 AM + +Expected events: +7:00 PM Venus and Neptune are in conjunction + +Note: All the hours are given in the UTC-1 timezone. +""" + ) + + +def test_timezone(): + check_command_return_t_plus_one( + execute(KOSMORRO + ["--timezone=1", "-d2020-01-27"]) + ) + check_command_return_t_minus_one( + execute(KOSMORRO + ["--timezone=-1", "-d2020-01-27"]) + ) + + +def test_timezone_with_env_var(): + check_command_return_t_plus_one( + execute(KOSMORRO + ["-d2020-01-27"], environment={"KOSMORRO_TIMEZONE": "1"}) + ) + check_command_return_t_minus_one( + execute(KOSMORRO + ["-d2020-01-27"], environment={"KOSMORRO_TIMEZONE": "-1"}) + ) + + # If both environment variable and argument are set, use argument: + + check_command_return_t_plus_one( + execute( + KOSMORRO + ["--timezone=1", "-d2020-01-27"], + environment={"KOSMORRO_TIMEZONE": "-1"}, + ) + ) + check_command_return_t_minus_one( + execute( + KOSMORRO + ["--timezone=-1", "-d2020-01-27"], + environment={"KOSMORRO_TIMEZONE": "1"}, + ) + ) diff --git a/tests/utils.py b/tests/utils.py new file mode 100644 index 0000000..d9eb5d7 --- /dev/null +++ b/tests/utils.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 + +import aurornis +import re + +from os import environ +from typing import Union + +DEFAULT_ENVIRONMENT = {"PATH": environ["PATH"]} +KOSMORRO = ["kosmorro", "--no-color"] + +CURRENT_MOON_PHASE_PATTERN = re.compile( + r"^Moon phase: (" + r"(New Moon)|(Waxing Crescent)|" + r"(First Quarter)|(Waxing Gibbous)|" + r"(Full Moon)|(Waning Gibbous)|" + r"(Last Quarter)|(Waning Crescent)" + r")$" +) + +NEXT_MOON_PHASE_PATTERN = re.compile( + r"^((New Moon)|(Waxing Crescent)|" + r"(First Quarter)|(Waxing Gibbous)|" + r"(Full Moon)|(Waning Gibbous)|" + r"(Last Quarter)|(Waning Crescent)) " + r"on ((Monday)|(Tuesday)|(Wednesday)|(Thursday)|(Friday)|(Saturday)|(Sunday)), " + r"((January)|(February)|(March)|(April)|(May)|(June)|" + r"(July)|(August)|(September)|(October)|(November)|(December)) " + r"[0-9]{1,2}, [0-9]{4} at [0-9]{1,2}:[0-9]{2} [AP]M$" +) + + +def execute( + command, environment: {str: Union[int, str]} = None +) -> aurornis.CommandResult: + if environment is None: + environment = DEFAULT_ENVIRONMENT + else: + for variable in DEFAULT_ENVIRONMENT: + environment[variable] = DEFAULT_ENVIRONMENT[variable] + + return aurornis.run(command, environment) + + +def assert_nb_lines(expected_nb: int, in_str: str): + """Check that the string has the specified number of lines and that the last one is empty.""" + lines = in_str.split("\n") + assert len(lines) == expected_nb + assert lines[len(lines) - 1] == ""