Quellcode durchsuchen

Merge branch 'master' into features

pull/252/head
Jérôme Deuchnord vor 2 Jahren
Ursprung
Commit
79761873db
80 geänderte Dateien mit 2682 neuen und 2287 gelöschten Zeilen
  1. +124
    -0
      .all-contributorsrc
  2. +2
    -3
      .github/ISSUE_TEMPLATE/bug_report.yml
  3. +8
    -2
      .github/workflows/appimage.yml
  4. +0
    -26
      .github/workflows/dockerfile.yml
  5. +10
    -9
      .github/workflows/i18n.yml
  6. +28
    -0
      .github/workflows/manpage.yml
  7. +14
    -16
      .github/workflows/release.yml
  8. +17
    -16
      .github/workflows/tests.yml
  9. +2
    -2
      .gitpod.yml
  10. +0
    -154
      .scripts/tests-e2e.sh
  11. +1
    -1
      AppImageBuilder.yml
  12. +21
    -0
      CHANGELOG.md
  13. +20
    -32
      CONTRIBUTING.md
  14. +36
    -0
      CONTRIBUTORS.md
  15. +0
    -34
      Dockerfile
  16. +9
    -5
      Makefile
  17. +0
    -219
      Pipfile.lock
  18. +7
    -5
      README.md
  19. +0
    -26
      _kosmorro/__version__.py
  20. +0
    -437
      _kosmorro/locales/en_XA/LC_MESSAGES/messages.po
  21. +0
    -26
      kosmorro
  22. +0
    -0
      kosmorro/__init__.py
  23. +19
    -15
      kosmorro/__main__.py
  24. +0
    -0
      kosmorro/assets/latex/template.tex
  25. +0
    -0
      kosmorro/assets/moonphases/png/first-quarter.png
  26. +0
    -0
      kosmorro/assets/moonphases/png/full-moon.png
  27. +0
    -0
      kosmorro/assets/moonphases/png/last-quarter.png
  28. +0
    -0
      kosmorro/assets/moonphases/png/new-moon.png
  29. +0
    -0
      kosmorro/assets/moonphases/png/unknown.png
  30. +0
    -0
      kosmorro/assets/moonphases/png/waning-crescent.png
  31. +0
    -0
      kosmorro/assets/moonphases/png/waning-gibbous.png
  32. +0
    -0
      kosmorro/assets/moonphases/png/waxing-crescent.png
  33. +0
    -0
      kosmorro/assets/moonphases/png/waxing-gibbous.png
  34. +0
    -0
      kosmorro/assets/moonphases/svg/first-quarter.svg
  35. +0
    -0
      kosmorro/assets/moonphases/svg/full-moon.svg
  36. +0
    -0
      kosmorro/assets/moonphases/svg/last-quarter.svg
  37. +0
    -0
      kosmorro/assets/moonphases/svg/new-moon.svg
  38. +0
    -0
      kosmorro/assets/moonphases/svg/unknown.svg
  39. +0
    -0
      kosmorro/assets/moonphases/svg/waning-crescent.svg
  40. +0
    -0
      kosmorro/assets/moonphases/svg/waning-gibbous.svg
  41. +0
    -0
      kosmorro/assets/moonphases/svg/waxing-crescent.svg
  42. +0
    -0
      kosmorro/assets/moonphases/svg/waxing-gibbous.svg
  43. +0
    -0
      kosmorro/assets/pdf/kosmorro.sty
  44. +0
    -0
      kosmorro/assets/pdf/template.tex
  45. +0
    -0
      kosmorro/assets/png/kosmorro-icon-white.png
  46. +0
    -0
      kosmorro/assets/png/kosmorro-icon.png
  47. +0
    -0
      kosmorro/assets/png/kosmorro-logo-white.png
  48. +0
    -0
      kosmorro/assets/png/kosmorro-logo.png
  49. +0
    -0
      kosmorro/assets/svg/kosmorro-icon-white.svg
  50. +0
    -0
      kosmorro/assets/svg/kosmorro-icon.svg
  51. +0
    -0
      kosmorro/assets/svg/kosmorro-logo-white.svg
  52. +0
    -0
      kosmorro/assets/svg/kosmorro-logo.svg
  53. +1
    -1
      kosmorro/date.py
  54. +0
    -0
      kosmorro/debug.py
  55. +57
    -73
      kosmorro/dumper.py
  56. +0
    -0
      kosmorro/environment.py
  57. +4
    -3
      kosmorro/exceptions.py
  58. +0
    -0
      kosmorro/geolocation.py
  59. +0
    -0
      kosmorro/i18n/__init__.py
  60. +0
    -0
      kosmorro/i18n/strings.py
  61. +0
    -0
      kosmorro/i18n/utils.py
  62. +170
    -172
      kosmorro/locales/de/LC_MESSAGES/messages.po
  63. +175
    -168
      kosmorro/locales/es/LC_MESSAGES/messages.po
  64. +171
    -172
      kosmorro/locales/fr/LC_MESSAGES/messages.po
  65. +141
    -141
      kosmorro/locales/messages.pot
  66. +148
    -148
      kosmorro/locales/nb_NO/LC_MESSAGES/messages.po
  67. +181
    -169
      kosmorro/locales/nl/LC_MESSAGES/messages.po
  68. +149
    -149
      kosmorro/locales/ru/LC_MESSAGES/messages.po
  69. +27
    -0
      kosmorro/utils.py
  70. +593
    -0
      poetry.lock
  71. +33
    -0
      pyproject.toml
  72. +3
    -3
      setup.cfg
  73. +0
    -60
      setup.py
  74. +0
    -0
      tests/__init__.py
  75. +52
    -0
      tests/dates.py
  76. +87
    -0
      tests/general.py
  77. +195
    -0
      tests/output.py
  78. +55
    -0
      tests/position.py
  79. +73
    -0
      tests/timezone.py
  80. +49
    -0
      tests/utils.py

+ 124
- 0
.all-contributorsrc Datei anzeigen

@@ -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
}

+ 2
- 3
.github/ISSUE_TEMPLATE/bug_report.yml Datei anzeigen

@@ -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


+ 8
- 2
.github/workflows/appimage.yml Datei anzeigen

@@ -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

+ 0
- 26
.github/workflows/dockerfile.yml Datei anzeigen

@@ -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

+ 10
- 9
.github/workflows/i18n.yml Datei anzeigen

@@ -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


+ 28
- 0
.github/workflows/manpage.yml Datei anzeigen

@@ -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

+ 14
- 16
.github/workflows/release.yml Datei anzeigen

@@ -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

.github/workflows/e2e.yml → .github/workflows/tests.yml Datei anzeigen

@@ -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

+ 2
- 2
.gitpod.yml Datei anzeigen

@@ -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

+ 0
- 154
.scripts/tests-e2e.sh Datei anzeigen

@@ -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 👍 ===="

+ 1
- 1
AppImageBuilder.yml Datei anzeigen

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


+ 21
- 0
CHANGELOG.md Datei anzeigen

@@ -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)




+ 20
- 32
CONTRIBUTING.md Datei anzeigen

@@ -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



+ 36
- 0
CONTRIBUTORS.md Datei anzeigen

@@ -0,0 +1,36 @@

<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-12-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
## Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://liberapay.com/kingu/"><img src="https://avatars.githubusercontent.com/u/13802408?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Allan Nordhøy</b></sub></a><br /><a href="#translation-comradekingu" title="Translation">🌍</a></td>
<td align="center"><a href="https://amaury.carrade.eu/"><img src="https://avatars.githubusercontent.com/u/1417570?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Amaury Carrade</b></sub></a><br /><a href="#translation-AmauryCarrade" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/ChabaneAmaury"><img src="https://avatars.githubusercontent.com/u/24982486?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Amaury Chabane</b></sub></a><br /><a href="#ideas-ChabaneAmaury" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center"><a href="https://github.com/Damgermys"><img src="https://avatars.githubusercontent.com/u/82285874?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Damgermys</b></sub></a><br /><a href="#translation-Damgermys" title="Translation">🌍</a></td>
<td align="center"><a href="https://deuchnord.fr/"><img src="https://avatars.githubusercontent.com/u/7600265?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jérôme Deuchnord</b></sub></a><br /><a href="https://github.com/Jérôme Deuchnord/kosmorro/commits?author=Deuchnord" title="Code">💻</a></td>
<td align="center"><a href="http://winxaito.com/"><img src="https://avatars.githubusercontent.com/u/8223773?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kevin Vuilleumier</b></sub></a><br /><a href="#ideas-WinXaito" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center"><a href="https://github.com/nicfb"><img src="https://avatars.githubusercontent.com/u/19811100?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nic</b></sub></a><br /><a href="https://github.com/Jérôme Deuchnord/kosmorro/commits?author=nicfb" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/romco1410"><img src="https://avatars.githubusercontent.com/u/40452973?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Roman Hanečák</b></sub></a><br /><a href="https://github.com/Jérôme Deuchnord/kosmorro/commits?author=romco1410" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/SpeedCode"><img src="https://avatars.githubusercontent.com/u/12190842?v=4?s=100" width="100px;" alt=""/><br /><sub><b>SpeedCode</b></sub></a><br /><a href="https://github.com/Jérôme Deuchnord/kosmorro/issues?q=author%3ASpeedCode" title="Bug reports">🐛</a></td>
<td align="center"><a href="http://people.freebsd.org/~thierry/"><img src="https://avatars.githubusercontent.com/u/6819982?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Thierry Thomas</b></sub></a><br /><a href="#platform-thierry-FreeBSD" title="Packaging/porting to new platform">📦</a></td>
<td align="center"><a href="https://github.com/StaloneLab"><img src="https://avatars.githubusercontent.com/u/6739422?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Titouan S.</b></sub></a><br /><a href="#translation-StaloneLab" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/Brainface1"><img src="https://avatars.githubusercontent.com/u/40472418?v=4?s=100" width="100px;" alt=""/><br /><sub><b>brain_face</b></sub></a><br /><a href="https://github.com/Jérôme Deuchnord/kosmorro/commits?author=Brainface1" title="Code">💻</a></td>
</tr>
</table>

<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->

<!-- ALL-CONTRIBUTORS-LIST:END -->

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

+ 0
- 34
Dockerfile Datei anzeigen

@@ -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"]

+ 9
- 5
Makefile Datei anzeigen

@@ -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


+ 0
- 219
Pipfile.lock Datei anzeigen

@@ -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"
}
}
}

+ 7
- 5
README.md Datei anzeigen

@@ -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



+ 0
- 26
_kosmorro/__version__.py Datei anzeigen

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

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

__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"

+ 0
- 437
_kosmorro/locales/en_XA/LC_MESSAGES/messages.po Datei anzeigen

@@ -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 <EMAIL@ADDRESS>, 2021.
# Jérôme Deuchnord <jerome@deuchnord.fr>, 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 <noreply@weblate.org>\n"
"Language-Team: English (XA pseudolocale) <https://hosted.weblate.org/"
"projects/kosmorro/cli/en_XA/>\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 ~~~"

+ 0
- 26
kosmorro Datei anzeigen

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

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

import sys
from _kosmorro.main import main

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

_kosmorro/__init__.py → kosmorro/__init__.py Datei anzeigen


_kosmorro/main.py → kosmorro/__main__.py Datei anzeigen

@@ -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())

_kosmorro/assets/latex/template.tex → kosmorro/assets/latex/template.tex Datei anzeigen


_kosmorro/assets/moonphases/png/first-quarter.png → kosmorro/assets/moonphases/png/first-quarter.png Datei anzeigen


_kosmorro/assets/moonphases/png/full-moon.png → kosmorro/assets/moonphases/png/full-moon.png Datei anzeigen


_kosmorro/assets/moonphases/png/last-quarter.png → kosmorro/assets/moonphases/png/last-quarter.png Datei anzeigen


_kosmorro/assets/moonphases/png/new-moon.png → kosmorro/assets/moonphases/png/new-moon.png Datei anzeigen


_kosmorro/assets/moonphases/png/unknown.png → kosmorro/assets/moonphases/png/unknown.png Datei anzeigen


_kosmorro/assets/moonphases/png/waning-crescent.png → kosmorro/assets/moonphases/png/waning-crescent.png Datei anzeigen


_kosmorro/assets/moonphases/png/waning-gibbous.png → kosmorro/assets/moonphases/png/waning-gibbous.png Datei anzeigen


_kosmorro/assets/moonphases/png/waxing-crescent.png → kosmorro/assets/moonphases/png/waxing-crescent.png Datei anzeigen


_kosmorro/assets/moonphases/png/waxing-gibbous.png → kosmorro/assets/moonphases/png/waxing-gibbous.png Datei anzeigen


_kosmorro/assets/moonphases/svg/first-quarter.svg → kosmorro/assets/moonphases/svg/first-quarter.svg Datei anzeigen


_kosmorro/assets/moonphases/svg/full-moon.svg → kosmorro/assets/moonphases/svg/full-moon.svg Datei anzeigen


_kosmorro/assets/moonphases/svg/last-quarter.svg → kosmorro/assets/moonphases/svg/last-quarter.svg Datei anzeigen


_kosmorro/assets/moonphases/svg/new-moon.svg → kosmorro/assets/moonphases/svg/new-moon.svg Datei anzeigen


_kosmorro/assets/moonphases/svg/unknown.svg → kosmorro/assets/moonphases/svg/unknown.svg Datei anzeigen


_kosmorro/assets/moonphases/svg/waning-crescent.svg → kosmorro/assets/moonphases/svg/waning-crescent.svg Datei anzeigen


_kosmorro/assets/moonphases/svg/waning-gibbous.svg → kosmorro/assets/moonphases/svg/waning-gibbous.svg Datei anzeigen


_kosmorro/assets/moonphases/svg/waxing-crescent.svg → kosmorro/assets/moonphases/svg/waxing-crescent.svg Datei anzeigen


_kosmorro/assets/moonphases/svg/waxing-gibbous.svg → kosmorro/assets/moonphases/svg/waxing-gibbous.svg Datei anzeigen


_kosmorro/i18n/__init__.py → kosmorro/assets/pdf/kosmorro.sty Datei anzeigen


+ 0
- 0
kosmorro/assets/pdf/template.tex Datei anzeigen


_kosmorro/assets/png/kosmorro-icon-white.png → kosmorro/assets/png/kosmorro-icon-white.png Datei anzeigen


_kosmorro/assets/png/kosmorro-icon.png → kosmorro/assets/png/kosmorro-icon.png Datei anzeigen


_kosmorro/assets/png/kosmorro-logo-white.png → kosmorro/assets/png/kosmorro-logo-white.png Datei anzeigen


_kosmorro/assets/png/kosmorro-logo.png → kosmorro/assets/png/kosmorro-logo.png Datei anzeigen


_kosmorro/assets/svg/kosmorro-icon-white.svg → kosmorro/assets/svg/kosmorro-icon-white.svg Datei anzeigen


_kosmorro/assets/svg/kosmorro-icon.svg → kosmorro/assets/svg/kosmorro-icon.svg Datei anzeigen


_kosmorro/assets/svg/kosmorro-logo-white.svg → kosmorro/assets/svg/kosmorro-logo-white.svg Datei anzeigen


_kosmorro/assets/svg/kosmorro-logo.svg → kosmorro/assets/svg/kosmorro-logo.svg Datei anzeigen


_kosmorro/date.py → kosmorro/date.py Datei anzeigen

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

_kosmorro/debug.py → kosmorro/debug.py Datei anzeigen


_kosmorro/dumper.py → kosmorro/dumper.py Datei anzeigen

@@ -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)

_kosmorro/environment.py → kosmorro/environment.py Datei anzeigen


_kosmorro/exceptions.py → kosmorro/exceptions.py Datei anzeigen

@@ -17,7 +17,8 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.

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"),
)



_kosmorro/geolocation.py → kosmorro/geolocation.py Datei anzeigen


+ 0
- 0
kosmorro/i18n/__init__.py Datei anzeigen


_kosmorro/i18n/strings.py → kosmorro/i18n/strings.py Datei anzeigen


_kosmorro/i18n/utils.py → kosmorro/i18n/utils.py Datei anzeigen


_kosmorro/locales/de/LC_MESSAGES/messages.po → kosmorro/locales/de/LC_MESSAGES/messages.po Datei anzeigen

@@ -2,14 +2,14 @@
# Copyright (C) 2021 ORGANIZATION
# This file is distributed under the same license as the kosmorro project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2021.
# Jérôme Deuchnord <jerome@deuchnord.fr>, 2021.
# Jérôme Deuchnord <jerome@deuchnord.fr>, 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 <jerome@deuchnord.fr>\n"
"POT-Creation-Date: 2022-03-19 13:28+0100\n"
"PO-Revision-Date: 2022-03-19 17:50+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: German <https://hosted.weblate.org/projects/kosmorro/cli/de/"
">\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}"


_kosmorro/locales/es/LC_MESSAGES/messages.po → kosmorro/locales/es/LC_MESSAGES/messages.po Datei anzeigen

@@ -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 <noreply@weblate.org>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/kosmorro/cli/es/"
">\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}"

_kosmorro/locales/fr/LC_MESSAGES/messages.po → kosmorro/locales/fr/LC_MESSAGES/messages.po Datei anzeigen

@@ -2,14 +2,14 @@
# Copyright (C) 2021 ORGANIZATION
# This file is distributed under the same license as the kosmorro project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2021.
# Jérôme Deuchnord <jerome@deuchnord.fr>, 2021.
# Jérôme Deuchnord <jerome@deuchnord.fr>, 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 <jerome@deuchnord.fr>\n"
"POT-Creation-Date: 2022-03-19 13:28+0100\n"
"PO-Revision-Date: 2022-03-19 17:51+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: French <https://hosted.weblate.org/projects/kosmorro/cli/fr/"
">\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}"


_kosmorro/locales/messages.pot → kosmorro/locales/messages.pot Datei anzeigen

@@ -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 <EMAIL@ADDRESS>, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 ""


_kosmorro/locales/nb_NO/LC_MESSAGES/messages.po → kosmorro/locales/nb_NO/LC_MESSAGES/messages.po Datei anzeigen

@@ -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 <noreply@weblate.org>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
"kosmorro/cli/nb_NO/>\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 ""


_kosmorro/locales/nl/LC_MESSAGES/messages.po → kosmorro/locales/nl/LC_MESSAGES/messages.po Datei anzeigen

@@ -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 <damhub28@gmail.com>\n"
"POT-Creation-Date: 2022-03-19 13:28+0100\n"
"PO-Revision-Date: 2022-03-19 17:51+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/kosmorro/cli/nl/>\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}"


_kosmorro/locales/ru/LC_MESSAGES/messages.po → kosmorro/locales/ru/LC_MESSAGES/messages.po Datei anzeigen

@@ -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 <talone+weblate@boxph.one>\n"
"POT-Creation-Date: 2022-03-19 13:28+0100\n"
"PO-Revision-Date: 2022-03-19 17:51+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/kosmorro/cli/ru/"
">\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}"


+ 27
- 0
kosmorro/utils.py Datei anzeigen

@@ -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)

+ 593
- 0
poetry.lock Datei anzeigen

@@ -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"},
]

+ 33
- 0
pyproject.toml Datei anzeigen

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

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

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

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

+ 3
- 3
setup.cfg Datei anzeigen

@@ -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

+ 0
- 60
setup.py Datei anzeigen

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

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

import pathlib
from setuptools import setup, find_packages

from _kosmorro.__version__ import __version__

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

setup(
name="kosmorro",
version=__version__,
author="Jérôme Deuchnord",
author_email="jerome@deuchnord.fr",
url="http://kosmorro.space",
license="AGPL-3.0",
description="A program that computes the ephemerides.",
long_description=README,
long_description_content_type="text/markdown",
keywords="kosmorro astronomy ephemerides ephemeris",
packages=find_packages(),
scripts=["kosmorro"],
include_package_data=True,
data_files=[
("man/man1", ["manpage/kosmorro.1"]),
("man/man7", ["manpage/kosmorro.7"]),
],
install_requires=[
"kosmorrolib",
"tabulate",
"termcolor",
"python-dateutil",
"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",
)

+ 0
- 0
tests/__init__.py Datei anzeigen


+ 52
- 0
tests/dates.py Datei anzeigen

@@ -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"
)

+ 87
- 0
tests/general.py Datei anzeigen

@@ -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
)

+ 195
- 0
tests/output.py Datei anzeigen

@@ -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")

+ 55
- 0
tests/position.py Datei anzeigen

@@ -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",
},
)
)

+ 73
- 0
tests/timezone.py Datei anzeigen

@@ -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"},
)
)

+ 49
- 0
tests/utils.py Datei anzeigen

@@ -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] == ""

Laden…
Abbrechen
Speichern