Move invert and rename base/quote logic to Series.
This commit is contained in:
parent
2c657307a8
commit
660b7d709c
2 changed files with 21 additions and 20 deletions
|
@ -1,5 +1,4 @@
|
||||||
import argparse
|
import argparse
|
||||||
import dataclasses
|
|
||||||
import logging
|
import logging
|
||||||
import shutil
|
import shutil
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
@ -7,7 +6,6 @@ from textwrap import TextWrapper
|
||||||
|
|
||||||
from pricehist import __version__, outputs, sources
|
from pricehist import __version__, outputs, sources
|
||||||
from pricehist.format import Format
|
from pricehist.format import Format
|
||||||
from pricehist.price import Price
|
|
||||||
from pricehist.series import Series
|
from pricehist.series import Series
|
||||||
|
|
||||||
|
|
||||||
|
@ -102,27 +100,16 @@ def cmd_fetch(args):
|
||||||
series = source.fetch(Series(base, quote, type, start, args.end))
|
series = source.fetch(Series(base, quote, type, start, args.end))
|
||||||
|
|
||||||
if args.invert:
|
if args.invert:
|
||||||
series = dataclasses.replace(
|
series = series.invert()
|
||||||
series,
|
if args.renamebase:
|
||||||
base=series.quote,
|
series = series.rename_base(args.renamebase)
|
||||||
quote=series.base,
|
if args.renamequote:
|
||||||
prices=[Price(date=p.date, amount=(1 / p.amount)) for p in series.prices],
|
series = series.rename_quote(args.renamequote)
|
||||||
)
|
|
||||||
|
|
||||||
if args.renamebase or args.renamequote:
|
|
||||||
series = dataclasses.replace(
|
|
||||||
series,
|
|
||||||
base=(args.renamebase or base),
|
|
||||||
quote=(args.renamequote or quote),
|
|
||||||
)
|
|
||||||
|
|
||||||
default = Format()
|
default = Format()
|
||||||
|
|
||||||
def if_not_none(value, default):
|
def if_not_none(value, default):
|
||||||
if value is None:
|
return default if value is None else value
|
||||||
return default
|
|
||||||
else:
|
|
||||||
return value
|
|
||||||
|
|
||||||
fmt = Format(
|
fmt = Format(
|
||||||
time=if_not_none(args.renametime, default.time),
|
time=if_not_none(args.renametime, default.time),
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field, replace
|
||||||
|
|
||||||
from pricehist.price import Price
|
from pricehist.price import Price
|
||||||
|
|
||||||
|
@ -11,3 +11,17 @@ class Series:
|
||||||
start: str
|
start: str
|
||||||
end: str
|
end: str
|
||||||
prices: list[Price] = field(default_factory=list)
|
prices: list[Price] = field(default_factory=list)
|
||||||
|
|
||||||
|
def invert(self):
|
||||||
|
return replace(
|
||||||
|
self,
|
||||||
|
base=self.quote,
|
||||||
|
quote=self.base,
|
||||||
|
prices=[Price(date=p.date, amount=(1 / p.amount)) for p in self.prices],
|
||||||
|
)
|
||||||
|
|
||||||
|
def rename_base(self, new_base):
|
||||||
|
return replace(self, base=new_base)
|
||||||
|
|
||||||
|
def rename_quote(self, new_quote):
|
||||||
|
return replace(self, quote=new_quote)
|
||||||
|
|
Loading…
Add table
Reference in a new issue