Browse Source

Add --clear-cache option

tags/v0.2.0
Jérôme Deuchnord 5 years ago
parent
commit
5c8d885707
No known key found for this signature in database GPG Key ID: 6D1B91F131F89577
2 changed files with 34 additions and 2 deletions
  1. +26
    -1
      kosmorro
  2. +8
    -1
      kosmorrolib/core.py

+ 26
- 1
kosmorro View File

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

import argparse
import sys
from datetime import date

from kosmorrolib import dumper
from kosmorrolib import core
from kosmorrolib.ephemerides import EphemeridesComputer, Position


def main():
output_formats = get_dumpers()
args = get_args(list(output_formats.keys()))

if args.special_action is not None:
return 0 if args.special_action() else 1

year = args.year
month = args.month
day = args.day
@@ -38,6 +45,8 @@ def main():
dump = output_formats[args.format](ephemerides)
print(dump.to_string())

return 0


def get_dumpers() -> {str: dumper.Dumper}:
return {
@@ -46,6 +55,20 @@ def get_dumpers() -> {str: dumper.Dumper}:
}


def clear_cache() -> bool:
confirm = input("Do you really want to clear Kosmorro's cache? [yN] ").upper()
if confirm == 'Y':
try:
core.clear_cache()
except FileNotFoundError:
pass
elif confirm not in ('N', ''):
print('Answer did not match expected options, cache not cleared.')
return False

return True


def get_args(output_formats: [str]):
today = date.today()

@@ -55,6 +78,8 @@ def get_args(output_formats: [str]):
' observer positioned at coordinates (0,0), with an altitude of 0.'
% today.strftime('%a %b %d, %Y'))

parser.add_argument('--clear-cache', dest='special_action', action='store_const', const=clear_cache, default=None,
help='Delete all the files Kosmorro stored in the cache.')
parser.add_argument('--format', '-f', type=str, default=output_formats[0], choices=output_formats,
help='The format under which the information have to be output')
parser.add_argument('--latitude', '-lat', type=float, default=0.,
@@ -77,4 +102,4 @@ def get_args(output_formats: [str]):


if __name__ == '__main__':
main()
sys.exit(main())

+ 8
- 1
kosmorrolib/core.py View File

@@ -16,11 +16,14 @@
# 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/>.

from shutil import rmtree
from pathlib import Path
from skyfield.api import Loader

from .data import Star, Planet, Satellite

VERSION = '0.1.1'
CACHE_FOLDER = str(Path.home()) + '/.kosmorro-cache'

MONTHS = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC']

@@ -37,7 +40,7 @@ ASTERS = [Star('Sun', 'SUN'),


def get_loader():
return Loader('~/.kosmorro-cache')
return Loader(CACHE_FOLDER)


def get_timescale():
@@ -46,3 +49,7 @@ def get_timescale():

def get_skf_objects():
return get_loader()('de421.bsp')


def clear_cache():
rmtree(CACHE_FOLDER)

Loading…
Cancel
Save