Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/latest series selection #79

Merged
merged 6 commits into from
Oct 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "pyfusion"
version = "1.4.0"
version = "1.4.1-dev0"
edition = "2021"


Expand Down
2 changes: 1 addition & 1 deletion py_src/fusion/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

__author__ = """Fusion Devs"""
__email__ = "[email protected]"
__version__ = "1.4.0"
__version__ = "1.4.1-dev0"

from fusion._fusion import FusionCredentials
from fusion.fs_sync import fsync
Expand Down
63 changes: 33 additions & 30 deletions py_src/fusion/fusion.py
Original file line number Diff line number Diff line change
Expand Up @@ -613,36 +613,38 @@ def _resolve_distro_tuples(
f"Check that a valid dataset identifier and date/date range has been set."
)


if dt_str == "latest":
dt_str = datasetseries_list.iloc[
datasetseries_list["createdDate"].to_numpy().argmax()
]["identifier"]

parsed_dates = normalise_dt_param_str(dt_str)
if len(parsed_dates) == 1:
parsed_dates = (parsed_dates[0], parsed_dates[0])

if parsed_dates[0]:
datasetseries_list = datasetseries_list[
pd.Series(
[
pd.to_datetime(i, errors="coerce")
for i in datasetseries_list["identifier"]
]
)
>= pd.to_datetime(parsed_dates[0])
].reset_index()

if parsed_dates[1]:
datasetseries_list = datasetseries_list[
pd.Series(
[
pd.to_datetime(i, errors="coerce")
for i in datasetseries_list["identifier"]
]
)
<= pd.to_datetime(parsed_dates[1])
].reset_index()
dt_str = datasetseries_list[
datasetseries_list["createdDate"]==datasetseries_list["createdDate"].to_numpy().max()
].sort_values(by="identifier").iloc[-1]["identifier"]
datasetseries_list = datasetseries_list[datasetseries_list["identifier"] == dt_str]
else:
parsed_dates = normalise_dt_param_str(dt_str)
if len(parsed_dates) == 1:
parsed_dates = (parsed_dates[0], parsed_dates[0])

if parsed_dates[0]:
datasetseries_list = datasetseries_list[
pd.Series(
[
pd.to_datetime(i, errors="coerce")
for i in datasetseries_list["identifier"]
]
)
>= pd.to_datetime(parsed_dates[0])
].reset_index()

if parsed_dates[1]:
datasetseries_list = datasetseries_list[
pd.Series(
[
pd.to_datetime(i, errors="coerce")
for i in datasetseries_list["identifier"]
]
)
<= pd.to_datetime(parsed_dates[1])
].reset_index()

if len(datasetseries_list) == 0:
raise APIResponseError( # pragma: no cover
Expand Down Expand Up @@ -677,7 +679,8 @@ def download( # noqa: PLR0912, PLR0913
dataset (str): A dataset identifier
dt_str (str, optional): Either a single date or a range identified by a start or end date,
or both separated with a ":". Defaults to 'latest' which will return the most recent
instance of the dataset.
instance of the dataset. If more than one series member exists on the latest date, the
series member identifiers will be sorted alphabetically and the last one will be downloaded.
dataset_format (str, optional): The file format, e.g. CSV or Parquet. Defaults to 'parquet'.
catalog (str, optional): A catalog identifier. Defaults to 'common'.
n_par (int, optional): Specify how many distributions to download in parallel.
Expand Down
6 changes: 3 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "pyfusion"
version = "1.4.0"
version = "1.4.1-dev0"

homepage = "https://github.com/jpmorganchase/fusion"
description = "JPMC Fusion Developer Tools"
Expand Down Expand Up @@ -92,7 +92,7 @@ dev-dependencies = [
"auditwheel>=6.0.0; sys_platform=='linux'",
"bump-my-version",
"cffi>=1.16.0; sys_platform=='darwin'",
"freezegun>=1.4.0",
"freezegun>=1.4.1-dev0",
"ipython",
"maturin>=1.6,<2.0",
"moto[s3]>=5.0.5",
Expand Down Expand Up @@ -224,7 +224,7 @@ omit = [


[tool.bumpversion]
current_version = "1.4.0"
current_version = "1.4.1-dev0"
parse = '(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(?:-(?P<release>[a-z]+)(?P<candidate>\d+))?'
serialize = [
'{major}.{minor}.{patch}-{release}{candidate}',
Expand Down
Loading