From 939048fe827cd985f5aff1e5033a42a9f7dd57ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Deuchnord?= Date: Mon, 21 Mar 2022 13:53:17 +0100 Subject: [PATCH] chore: clean repo --- .coveragerc | 7 - .github/ISSUE_TEMPLATE/config.yml | 6 + .github/ISSUE_TEMPLATE/event-type-proposal.md | 20 - .github/ISSUE_TEMPLATE/feature_request.md | 20 - .github/ISSUE_TEMPLATE/feature_request.yml | 60 ++ .github/dependabot.yml | 3 +- .pylintrc | 581 ------------------ .scripts/tests-e2e.sh | 0 MANIFEST.in | 2 - Pipfile | 21 - kosmorro/__main__.py | 2 +- kosmorro/locales/messages.pot | 89 +-- poetry.lock | 13 +- pyproject.toml | 1 + setup.cfg | 12 - setup.py | 0 tests/general.py | 23 +- tests/output.py | 6 +- tests/position.py | 7 +- 19 files changed, 146 insertions(+), 727 deletions(-) delete mode 100644 .coveragerc create mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/ISSUE_TEMPLATE/event-type-proposal.md delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml delete mode 100644 .pylintrc delete mode 100755 .scripts/tests-e2e.sh delete mode 100644 MANIFEST.in delete mode 100644 Pipfile delete mode 100644 setup.cfg delete mode 100644 setup.py diff --git a/.coveragerc b/.coveragerc deleted file mode 100644 index 9a36afd..0000000 --- a/.coveragerc +++ /dev/null @@ -1,7 +0,0 @@ -[run] -branch = true -source = - kosmorrolib -omit = - kosmorrolib/main.py - test/* diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..807ca31 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,6 @@ +blank_issue_enabled: true + +contact_links: + - name: Event type + description: Suggest an event type that is not supported yet + url: https://github.com/Kosmorro/lib/issues/new/choose diff --git a/.github/ISSUE_TEMPLATE/event-type-proposal.md b/.github/ISSUE_TEMPLATE/event-type-proposal.md deleted file mode 100644 index 2184ff0..0000000 --- a/.github/ISSUE_TEMPLATE/event-type-proposal.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Event type proposal -about: Suggest a type of event you'd like to see implemented in Kosmorro -title: '' -labels: "enhancement, \U0001F320 events" -assignees: '' - ---- - -**Event type**: -**Involved objects (check the boxes)**: -- [ ] Sun -- [ ] Earth's moon -- [ ] Planets - -**Definition of the event:** - - - -**Other useful information** (implementation proposal, etc): diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 11fc491..0000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: enhancement -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..63c8a6e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,60 @@ +name: Feature request +description: Suggest a new feature for Kosmorro +labels: + - enhancement + +body: + - type: checkboxes + id: terms + attributes: + label: I have searched for an opened issue and didn't find my bug + description: | + Before continuing, please verify that your bug is not already known, i.e.: + + - there is an issue that describe your bug; + - the issue is not closed. + + If you have found a closed issue that describes the same bug as yours, please don't comment inside and open a new issue instead. + Even though it may look the same, your bug might be totally different :smile: + + options: + - label: I confirm I didn't find any issue regarding my bug + required: true + + - type: textarea + id: description + validations: + required: true + attributes: + label: Feature description + description: | + Describe the feature you would like to see in Kosmorro. + + - type: textarea + id: context + validations: + required: false + attributes: + label: Suggestion context + description: | + If you have some context to share about your suggestion, feel free to describe here. + For instance, a frustration. + + - type: textarea + id: alternatives + validations: + required: false + attributes: + label: Considered alternatives + description: | + Did you find any alternative solution that meet your need? + It can be a workaround in Kosmorro usage, or even the use of another software with or in replacement. + + - type: textarea + id: additional-info + validations: + required: false + attributes: + label: Additional information + description: | + Anything else to say? diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 12bf2e6..060de1c 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,8 +5,7 @@ updates: directory: "/" schedule: interval: daily - time: "04:00" - open-pull-requests-limit: 10 + open-pull-requests-limit: 5 target-branch: master reviewers: - Deuchnord diff --git a/.pylintrc b/.pylintrc deleted file mode 100644 index 202bd12..0000000 --- a/.pylintrc +++ /dev/null @@ -1,581 +0,0 @@ -[MASTER] - -# A comma-separated list of package or module names from where C extensions may -# be loaded. Extensions are loading into the active Python interpreter and may -# run arbitrary code. -extension-pkg-whitelist= - -# Add files or directories to the blacklist. They should be base names, not -# paths. -ignore=CVS - -# Add files or directories matching the regex patterns to the blacklist. The -# regex matches against base names, not paths. -ignore-patterns= - -# Python code to execute, usually for sys.path manipulation such as -# pygtk.require(). -#init-hook= - -# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the -# number of processors available to use. -jobs=1 - -# Control the amount of potential inferred values when inferring a single -# object. This can help the performance when dealing with large functions or -# complex, nested conditions. -limit-inference-results=100 - -# List of plugins (as comma separated values of python modules names) to load, -# usually to register additional checkers. -load-plugins=pylintfileheader - -file-header=#!/usr/bin/env python3\n\n# Kosmorro - Compute The Next Ephemerides\n# Copyright \(C\) 2019 Jérôme Deuchnord \n#\n# This program is free software: you can redistribute it and/or modify\n# it under the terms of the GNU Affero General Public License as\n# published by the Free Software Foundation, either version 3 of the\n# License, or \(at your option\) any later version.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# You should have received a copy of the GNU Affero General Public License\n# along with this program. If not, see .\n - -# Pickle collected data for later comparisons. -persistent=yes - -# Specify a configuration file. -#rcfile= - -# When enabled, pylint would attempt to guess common misconfiguration and emit -# user-friendly hints instead of false-positive error messages. -suggestion-mode=yes - -# Allow loading of arbitrary C extensions. Extensions are imported into the -# active Python interpreter and may run arbitrary code. -unsafe-load-any-extension=no - - -[MESSAGES CONTROL] - -# Only show warnings with the listed confidence levels. Leave empty to show -# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED. -confidence= - -# Disable the message, report, category or checker with the given id(s). You -# can either give multiple identifiers separated by comma (,) or put this -# option multiple times (only on the command line, not in the configuration -# file where it should appear only once). You can also use "--disable=all" to -# disable everything first and then reenable specific checks. For example, if -# you want to run only the similarities checker, you can use "--disable=all -# --enable=similarities". If you want to run only the classes checker, but have -# no Warning level messages displayed, use "--disable=all --enable=classes -# --disable=W". -disable=print-statement, - parameter-unpacking, - unpacking-in-except, - old-raise-syntax, - backtick, - long-suffix, - old-ne-operator, - old-octal-literal, - import-star-module-level, - non-ascii-bytes-literal, - raw-checker-failed, - bad-inline-option, - locally-disabled, - file-ignored, - suppressed-message, - useless-suppression, - deprecated-pragma, - use-symbolic-message-instead, - apply-builtin, - basestring-builtin, - buffer-builtin, - cmp-builtin, - coerce-builtin, - execfile-builtin, - file-builtin, - long-builtin, - raw_input-builtin, - reduce-builtin, - standarderror-builtin, - unicode-builtin, - xrange-builtin, - coerce-method, - delslice-method, - getslice-method, - setslice-method, - no-absolute-import, - old-division, - dict-iter-method, - dict-view-method, - next-method-called, - metaclass-assignment, - indexing-exception, - raising-string, - reload-builtin, - oct-method, - hex-method, - nonzero-method, - cmp-method, - input-builtin, - round-builtin, - intern-builtin, - unichr-builtin, - map-builtin-not-iterating, - zip-builtin-not-iterating, - range-builtin-not-iterating, - filter-builtin-not-iterating, - using-cmp-argument, - eq-without-hash, - div-method, - idiv-method, - rdiv-method, - exception-message-attribute, - invalid-str-codec, - sys-max-int, - bad-python3-import, - deprecated-string-function, - deprecated-str-translate-call, - deprecated-itertools-function, - deprecated-types-field, - next-method-defined, - dict-items-not-iterating, - dict-keys-not-iterating, - dict-values-not-iterating, - deprecated-operator-function, - deprecated-urllib-function, - xreadlines-attribute, - deprecated-sys-function, - exception-escape, - comprehension-escape, - missing-docstring, - too-many-locals, - too-many-branches, - too-few-public-methods, - protected-access, - unnecessary-comprehension, - too-many-arguments, - unsubscriptable-object, - too-many-return-statements - -# Enable the message, report, category or checker with the given id(s). You can -# either give multiple identifier separated by comma (,) or put this option -# multiple time (only on the command line, not in the configuration file where -# it should appear only once). See also the "--disable" option for examples. -enable=c-extension-no-member - - -[REPORTS] - -# Python expression which should return a note less than 10 (10 is the highest -# note). You have access to the variables errors warning, statement which -# respectively contain the number of errors / warnings messages and the total -# number of statements analyzed. This is used by the global evaluation report -# (RP0004). -evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) - -# Template used to display messages. This is a python new-style format string -# used to format the message information. See doc for all details. -#msg-template= - -# Set the output format. Available formats are text, parseable, colorized, json -# and msvs (visual studio). You can also give a reporter class, e.g. -# mypackage.mymodule.MyReporterClass. -output-format=text - -# Tells whether to display a full report or only the messages. -reports=no - -# Activate the evaluation score. -score=yes - - -[REFACTORING] - -# Maximum number of nested blocks for function / method body -max-nested-blocks=5 - -# Complete name of functions that never returns. When checking for -# inconsistent-return-statements if a never returning function is called then -# it will be considered as an explicit return statement and no message will be -# printed. -never-returning-functions=sys.exit - - -[BASIC] - -# Naming style matching correct argument names. -argument-naming-style=snake_case - -# Regular expression matching correct argument names. Overrides argument- -# naming-style. -#argument-rgx= - -# Naming style matching correct attribute names. -attr-naming-style=snake_case - -# Regular expression matching correct attribute names. Overrides attr-naming- -# style. -#attr-rgx= - -# Bad variable names which should always be refused, separated by a comma. -bad-names=foo, - bar, - baz, - toto, - tutu, - tata - -# Naming style matching correct class attribute names. -class-attribute-naming-style=any - -# Regular expression matching correct class attribute names. Overrides class- -# attribute-naming-style. -#class-attribute-rgx= - -# Naming style matching correct class names. -class-naming-style=PascalCase - -# Regular expression matching correct class names. Overrides class-naming- -# style. -#class-rgx= - -# Naming style matching correct constant names. -const-naming-style=UPPER_CASE - -# Regular expression matching correct constant names. Overrides const-naming- -# style. -#const-rgx= - -# Minimum line length for functions/classes that require docstrings, shorter -# ones are exempt. -docstring-min-length=-1 - -# Naming style matching correct function names. -function-naming-style=snake_case - -# Regular expression matching correct function names. Overrides function- -# naming-style. -#function-rgx= - -# Good variable names which should always be accepted, separated by a comma. -good-names=i, - j, - k, - ex, - Run, - _ - -# Include a hint for the correct naming format with invalid-name. -include-naming-hint=no - -# Naming style matching correct inline iteration names. -inlinevar-naming-style=any - -# Regular expression matching correct inline iteration names. Overrides -# inlinevar-naming-style. -#inlinevar-rgx= - -# Naming style matching correct method names. -method-naming-style=snake_case - -# Regular expression matching correct method names. Overrides method-naming- -# style. -#method-rgx= - -# Naming style matching correct module names. -module-naming-style=snake_case - -# Regular expression matching correct module names. Overrides module-naming- -# style. -#module-rgx= - -# Colon-delimited sets of names that determine each other's naming style when -# the name regexes allow several styles. -name-group= - -# Regular expression which should only match function or class names that do -# not require a docstring. -no-docstring-rgx=^_ - -# List of decorators that produce properties, such as abc.abstractproperty. Add -# to this list to register other decorators that produce valid properties. -# These decorators are taken in consideration only for invalid-name. -property-classes=abc.abstractproperty - -# Naming style matching correct variable names. -variable-naming-style=snake_case - -# Regular expression matching correct variable names. Overrides variable- -# naming-style. -#variable-rgx= - - -[FORMAT] - -# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. -expected-line-ending-format= - -# Regexp for a line that is allowed to be longer than the limit. -ignore-long-lines=^\s*(# )??$ - -# Number of spaces of indent required inside a hanging or continued line. -indent-after-paren=4 - -# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 -# tab). -indent-string=' ' - -# Maximum number of characters on a single line. -max-line-length=120 - -# Maximum number of lines in a module. -max-module-lines=1000 - -# List of optional constructs for which whitespace checking is disabled. `dict- -# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}. -# `trailing-comma` allows a space between comma and closing bracket: (a, ). -# `empty-line` allows space-only lines. -no-space-check=trailing-comma, - dict-separator - -# Allow the body of a class to be on the same line as the declaration if body -# contains single statement. -single-line-class-stmt=no - -# Allow the body of an if to be on the same line as the test if there is no -# else. -single-line-if-stmt=no - - -[LOGGING] - -# Format style used to check logging format string. `old` means using % -# formatting, while `new` is for `{}` formatting. -logging-format-style=old - -# Logging modules to check that the string format arguments are in logging -# function parameter format. -logging-modules=logging - - -[MISCELLANEOUS] - -# List of note tags to take in consideration, separated by a comma. -notes=FIXME, - XXX, - TODO - - -[SIMILARITIES] - -# Ignore comments when computing similarities. -ignore-comments=yes - -# Ignore docstrings when computing similarities. -ignore-docstrings=yes - -# Ignore imports when computing similarities. -ignore-imports=no - -# Minimum lines number of a similarity. -min-similarity-lines=4 - - -[SPELLING] - -# Limits count of emitted suggestions for spelling mistakes. -max-spelling-suggestions=4 - -# Spelling dictionary name. Available dictionaries: none. To make it working -# install python-enchant package.. -spelling-dict= - -# List of comma separated words that should not be checked. -spelling-ignore-words= - -# A path to a file that contains private dictionary; one word per line. -spelling-private-dict-file= - -# Tells whether to store unknown words to indicated private dictionary in -# --spelling-private-dict-file option instead of raising a message. -spelling-store-unknown-words=no - - -[STRING] - -# This flag controls whether the implicit-str-concat-in-sequence should -# generate a warning on implicit string concatenation in sequences defined over -# several lines. -check-str-concat-over-line-jumps=no - - -[TYPECHECK] - -# List of decorators that produce context managers, such as -# contextlib.contextmanager. Add to this list to register other decorators that -# produce valid context managers. -contextmanager-decorators=contextlib.contextmanager - -# List of members which are set dynamically and missed by pylint inference -# system, and so shouldn't trigger E1101 when accessed. Python regular -# expressions are accepted. -generated-members= - -# Tells whether missing members accessed in mixin class should be ignored. A -# mixin class is detected if its name ends with "mixin" (case insensitive). -ignore-mixin-members=yes - -# Tells whether to warn about missing members when the owner of the attribute -# is inferred to be None. -ignore-none=yes - -# This flag controls whether pylint should warn about no-member and similar -# checks whenever an opaque object is returned when inferring. The inference -# can return multiple potential results while evaluating a Python object, but -# some branches might not be evaluated, which results in partial inference. In -# that case, it might be useful to still emit no-member and other checks for -# the rest of the inferred objects. -ignore-on-opaque-inference=yes - -# List of class names for which member attributes should not be checked (useful -# for classes with dynamically set attributes). This supports the use of -# qualified names. -ignored-classes=optparse.Values,thread._local,_thread._local - -# List of module names for which member attributes should not be checked -# (useful for modules/projects where namespaces are manipulated during runtime -# and thus existing member attributes cannot be deduced by static analysis. It -# supports qualified module names, as well as Unix pattern matching. -ignored-modules= - -# Show a hint with possible names when a member name was not found. The aspect -# of finding the hint is based on edit distance. -missing-member-hint=yes - -# The minimum edit distance a name should have in order to be considered a -# similar match for a missing member name. -missing-member-hint-distance=1 - -# The total number of similar names that should be taken in consideration when -# showing a hint for a missing member. -missing-member-max-choices=1 - - -[VARIABLES] - -# List of additional names supposed to be defined in builtins. Remember that -# you should avoid defining new builtins when possible. -additional-builtins= - -# Tells whether unused global variables should be treated as a violation. -allow-global-unused-variables=yes - -# List of strings which can identify a callback function by name. A callback -# name must start or end with one of those strings. -callbacks=cb_, - _cb - -# A regular expression matching the name of dummy variables (i.e. expected to -# not be used). -dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_ - -# Argument names that match this expression will be ignored. Default to name -# with leading underscore. -ignored-argument-names=_.*|^ignored_|^unused_ - -# Tells whether we should check for unused import in __init__ files. -init-import=no - -# List of qualified module names which can have objects that can redefine -# builtins. -redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io - - -[CLASSES] - -# List of method names used to declare (i.e. assign) instance attributes. -defining-attr-methods=__init__, - __new__, - setUp - -# List of member names, which should be excluded from the protected access -# warning. -exclude-protected=_asdict, - _fields, - _replace, - _source, - _make - -# List of valid names for the first argument in a class method. -valid-classmethod-first-arg=cls - -# List of valid names for the first argument in a metaclass class method. -valid-metaclass-classmethod-first-arg=cls - - -[DESIGN] - -# Maximum number of arguments for function / method. -max-args=5 - -# Maximum number of attributes for a class (see R0902). -max-attributes=7 - -# Maximum number of boolean expressions in an if statement. -max-bool-expr=5 - -# Maximum number of branch for function / method body. -max-branches=12 - -# Maximum number of locals for function / method body. -max-locals=15 - -# Maximum number of parents for a class (see R0901). -max-parents=7 - -# Maximum number of public methods for a class (see R0904). -max-public-methods=20 - -# Maximum number of return / yield for function / method body. -max-returns=6 - -# Maximum number of statements in function / method body. -max-statements=50 - -# Minimum number of public methods for a class (see R0903). -min-public-methods=2 - - -[IMPORTS] - -# Allow wildcard imports from modules that define __all__. -allow-wildcard-with-all=no - -# Analyse import fallback blocks. This can be used to support both Python 2 and -# 3 compatible code, which means that the block might have code that exists -# only in one or another interpreter, leading to false positives when analysed. -analyse-fallback-blocks=no - -# Deprecated modules which should not be used, separated by a comma. -deprecated-modules=optparse,tkinter.tix - -# Create a graph of external dependencies in the given file (report RP0402 must -# not be disabled). -ext-import-graph= - -# Create a graph of every (i.e. internal and external) dependencies in the -# given file (report RP0402 must not be disabled). -import-graph= - -# Create a graph of internal dependencies in the given file (report RP0402 must -# not be disabled). -int-import-graph= - -# Force import order to recognize a module as part of the standard -# compatibility libraries. -known-standard-library= - -# Force import order to recognize a module as part of a third party library. -known-third-party=enchant - - -[EXCEPTIONS] - -# Exceptions that will emit a warning when being caught. Defaults to -# "BaseException, Exception". -overgeneral-exceptions=BaseException, - Exception diff --git a/.scripts/tests-e2e.sh b/.scripts/tests-e2e.sh deleted file mode 100755 index e69de29..0000000 diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 52a10d1..0000000 --- a/MANIFEST.in +++ /dev/null @@ -1,2 +0,0 @@ -recursive-include _kosmorro/locales * -recursive-include _kosmorro/assets * diff --git a/Pipfile b/Pipfile deleted file mode 100644 index a9c8f2b..0000000 --- a/Pipfile +++ /dev/null @@ -1,21 +0,0 @@ -[[source]] -name = "pypi" -url = "https://pypi.org/simple" -verify_ssl = true - -[dev-packages] -babel = "*" -black = "*" - -[packages] -tabulate = "*" -termcolor = "*" -kosmorrolib = ">=1.0.0,<2.0.0" -python-dateutil = "*" -openlocationcode = ">=1.0.0,<2.0.0" - -[requires] -python_version = "3" - -[pipenv] -allow_prereleases = true diff --git a/kosmorro/__main__.py b/kosmorro/__main__.py index 4bc5458..3331df8 100644 --- a/kosmorro/__main__.py +++ b/kosmorro/__main__.py @@ -279,7 +279,7 @@ def get_args(output_formats: [str]): type=str, default=None, help=_( - 'The observer\'s position on Earth, in the "{latitude},{longitude}" format.' + 'The observer\'s position on Earth, in the "{latitude},{longitude}" format. ' "Can also be set in the KOSMORRO_POSITION environment variable." ), ) diff --git a/kosmorro/locales/messages.pot b/kosmorro/locales/messages.pot index 7814bb9..4df8603 100644 --- a/kosmorro/locales/messages.pot +++ b/kosmorro/locales/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2022-03-20 11:00+0100\n" +"POT-Creation-Date: 2022-03-24 20:45+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,98 +17,94 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.9.1\n" -#: kosmorro/__main__.py:61 +#: kosmorro/__main__.py:76 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:70 +#: kosmorro/__main__.py:85 msgid "" "PDF output will not contain the ephemerides, because you didn't provide " "the observation coordinates." msgstr "" -#: kosmorro/__main__.py:115 +#: kosmorro/__main__.py:137 msgid "The file could not be saved in \"{path}\": {error}" msgstr "" -#: kosmorro/__main__.py:129 +#: kosmorro/__main__.py:151 msgid "Please provide a file path to export in this format (--output)." msgstr "" -#: kosmorro/__main__.py:162 +#: kosmorro/__main__.py:184 msgid "Moon phase can only be computed between {min_date} and {max_date}" msgstr "" -#: kosmorro/__main__.py:201 +#: kosmorro/__main__.py:234 msgid "Running on Python {python_version} with Kosmorrolib v{kosmorrolib_version}" msgstr "" -#: kosmorro/__main__.py:214 +#: kosmorro/__main__.py:247 msgid "" "Compute the ephemerides and the events for a given date and a given " "position on Earth." msgstr "" -#: kosmorro/__main__.py:217 +#: kosmorro/__main__.py:250 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:230 +#: kosmorro/__main__.py:263 msgid "Show the program version" msgstr "" -#: kosmorro/__main__.py:238 -msgid "The format to output the information to" -msgstr "" - -#: kosmorro/__main__.py:245 +#: kosmorro/__main__.py:271 msgid "" -"The observer's latitude on Earth. Can also be set in the " -"KOSMORRO_LATITUDE environment variable." +"The format to output the information to. If not provided, the output " +"format will be inferred from the file extension of the output file." msgstr "" -#: kosmorro/__main__.py:255 +#: kosmorro/__main__.py:281 msgid "" -"The observer's longitude on Earth. Can also be set in the " -"KOSMORRO_LONGITUDE environment variable." +"The observer's position on Earth, in the \"{latitude},{longitude}\" " +"format. Can also be set in the KOSMORRO_POSITION environment variable." msgstr "" -#: kosmorro/__main__.py:265 +#: kosmorro/__main__.py:291 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:276 +#: kosmorro/__main__.py:302 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:285 +#: kosmorro/__main__.py:311 msgid "Disable the colors in the console." msgstr "" -#: kosmorro/__main__.py:292 +#: kosmorro/__main__.py:318 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:301 +#: kosmorro/__main__.py:327 msgid "" "Do not generate a graph to represent the rise and set times in the PDF " "format." msgstr "" -#: kosmorro/__main__.py:309 +#: kosmorro/__main__.py:335 msgid "Show debugging messages" msgstr "" @@ -134,19 +130,19 @@ msgstr "" msgid "Note: All the hours are given in the UTC{offset} timezone." msgstr "" -#: kosmorro/dumper.py:205 kosmorro/dumper.py:333 +#: kosmorro/dumper.py:205 kosmorro/dumper.py:339 msgid "Object" msgstr "" -#: kosmorro/dumper.py:206 kosmorro/dumper.py:334 +#: kosmorro/dumper.py:206 kosmorro/dumper.py:340 msgid "Rise time" msgstr "" -#: kosmorro/dumper.py:207 kosmorro/dumper.py:336 +#: kosmorro/dumper.py:207 kosmorro/dumper.py:342 msgid "Culmination time" msgstr "" -#: kosmorro/dumper.py:208 kosmorro/dumper.py:338 +#: kosmorro/dumper.py:208 kosmorro/dumper.py:344 msgid "Set time" msgstr "" @@ -154,7 +150,7 @@ msgstr "" msgid "Moon phase is unavailable for this date." msgstr "" -#: kosmorro/dumper.py:238 kosmorro/dumper.py:342 +#: kosmorro/dumper.py:238 kosmorro/dumper.py:348 msgid "Moon phase:" msgstr "" @@ -162,36 +158,36 @@ msgstr "" msgid "{next_moon_phase} on {next_moon_phase_date} at {next_moon_phase_time}" msgstr "" -#: kosmorro/dumper.py:306 +#: kosmorro/dumper.py:312 msgid "Overview of your sky" msgstr "" -#: kosmorro/dumper.py:314 +#: kosmorro/dumper.py:320 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:324 +#: kosmorro/dumper.py:330 msgid "" "Don't forget to check the weather forecast before you go out with your " "equipment." msgstr "" -#: kosmorro/dumper.py:331 +#: kosmorro/dumper.py:337 msgid "Ephemerides of the day" msgstr "" -#: kosmorro/dumper.py:340 +#: kosmorro/dumper.py:346 msgid "hours" msgstr "" -#: kosmorro/dumper.py:347 +#: kosmorro/dumper.py:353 msgid "Expected events" msgstr "" -#: kosmorro/dumper.py:487 +#: kosmorro/dumper.py:493 msgid "" "Building PDF was not possible, because some dependencies are not " "installed.\n" @@ -199,7 +195,7 @@ msgid "" "pdf/ for more information." msgstr "" -#: kosmorro/dumper.py:540 +#: kosmorro/dumper.py:542 #, python-format msgid "" "An error occurred during the compilation of the PDF.\n" @@ -211,6 +207,21 @@ msgstr "" msgid "The date must be between {minimum_date} and {maximum_date}" msgstr "" +#: kosmorro/exceptions.py:48 +msgid "" +"Invalid output format: {output_format}. Output file must end with: " +"{accepted_extensions}" +msgstr "" + +#: kosmorro/geolocation.py:14 +#, python-format +msgid "The given position (%s) is not valid." +msgstr "" + +#: kosmorro/geolocation.py:29 +msgid "The given Plus Code seems to be a short code, please provide a full code." +msgstr "" + #: kosmorro/i18n/strings.py:11 #, python-format msgid "%s is in opposition" diff --git a/poetry.lock b/poetry.lock index 4d807e0..ed896a2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -155,6 +155,14 @@ category = "main" optional = false python-versions = ">=3.7,<3.11" +[[package]] +name = "openlocationcode" +version = "1.0.1" +description = "Python library for Open Location Code (Plus Codes)" +category = "main" +optional = false +python-versions = "*" + [[package]] name = "packaging" version = "21.3" @@ -361,7 +369,7 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest- [metadata] lock-version = "1.1" python-versions = ">=3.7,<3.11" -content-hash = "351d9199cffd4c1ad1b234c67a8f463b54d724b24215745584cb4555cf13283c" +content-hash = "5acdc2ed4308157d945caaba6a73f934ad62fe2eef397cb88d885453878bb7d7" [metadata.files] atomicwrites = [ @@ -468,6 +476,9 @@ numpy = [ {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"}, ] +openlocationcode = [ + {file = "openlocationcode-1.0.1.tar.gz", hash = "sha256:6fc0108a8214b65d74964105bd69645a8a7529237f0de6aadcfa83cc3373b359"}, +] packaging = [ {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, diff --git a/pyproject.toml b/pyproject.toml index 31eae86..f269525 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,6 +22,7 @@ kosmorrolib = "^1.0" python-dateutil = "^2.8" Babel = "^2.9" importlib-metadata = "^4.11" +openlocationcode = "^1.0" [tool.poetry.dev-dependencies] black = "^22.1" diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 2a8fe64..0000000 --- a/setup.cfg +++ /dev/null @@ -1,12 +0,0 @@ -[extract_message] -charset = utf-8 -keywords = _ ngettext -width = 120 -output_file = kosmorro/locales/messages.pot -omit_header = true -copyright_holder = Jérôme Deuchnord -input_paths=kosmorro - -[compile_catalog] -domain = messages -directory = kosmorro/locales diff --git a/setup.py b/setup.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/general.py b/tests/general.py index c7f8462..c9af8d5 100644 --- a/tests/general.py +++ b/tests/general.py @@ -44,10 +44,9 @@ def test_help_message(): 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] + == """usage: kosmorro [-h] [--version] [--format {txt,json,pdf,tex}] + [--position POSITION] [--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. @@ -55,14 +54,14 @@ 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. + --format {txt,json,pdf,tex}, -f {txt,json,pdf,tex} + The format to output the information to. If not + provided, the output format will be inferred from the + file extension of the output file. + --position POSITION, -p POSITION + The observer's position on Earth, in the + "{latitude},{longitude}" format. Can also be set in + the KOSMORRO_POSITION 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). diff --git a/tests/output.py b/tests/output.py index d466f26..dc4700c 100644 --- a/tests/output.py +++ b/tests/output.py @@ -11,8 +11,7 @@ from sys import platform def test_json_output(): result = execute( - KOSMORRO - + ["--latitude=50.5876", "--longitude=3.0624", "-d2020-01-27", "--format=json"] + KOSMORRO + ["--position=50.5876,3.0624", "-d2020-01-27", "--format=json"] ) assert result.is_successful() assert ( @@ -162,8 +161,7 @@ def test_pdf_output(): result = execute( KOSMORRO + [ - "--latitude=50.5876", - "--longitude=3.0624", + "--position=50.5876,3.0624", "-d2020-01-27", "--format=pdf", f"--output={tmp_dir}/document.pdf", diff --git a/tests/position.py b/tests/position.py index 1912d1a..a1fbc65 100644 --- a/tests/position.py +++ b/tests/position.py @@ -37,9 +37,7 @@ Note: All the hours are given in UTC. def test_with_position(): - result = execute( - KOSMORRO + ["--latitude=50.5876", "--longitude=3.0624", "-d2020-01-27"] - ) + result = execute(KOSMORRO + ["--position=50.5876,3.0624", "-d2020-01-27"]) check_command_return(result) @@ -48,8 +46,7 @@ def test_with_position_env_vars(): execute( KOSMORRO + ["-d2020-01-27"], environment={ - "KOSMORRO_LATITUDE": "50.5876", - "KOSMORRO_LONGITUDE": "3.0624", + "KOSMORRO_POSITION": "50.5876,3.0624", }, ) )