Miksus / rocketry

Modern scheduling library for Python
https://rocketry.readthedocs.io
MIT License
3.25k stars 105 forks source link

ENH: Optional Timezone #147

Closed Miksus closed 1 year ago

Miksus commented 1 year ago

This PR implements custom timezones and custom time measurement function (for testing).

Set the timezone:

from rocketry import Rocketry
import pytz

app = Rocketry(timezone=pytz.timezone("Europe/Helsinki"))

Set the time:

def fix_time(dt):
    "Get new time measurement function"
    start_time = time.time()
    def get_time():
        sec_since_start = time.time() - start_time
        return dt.timestamp() + sec_since_start
    return get_time

app = Rocketry(fime_func=fix_time("2014-04-31 10:00:00"))

Other changes:

Further Idea

Perhaps in the future we could have something like:


with app.test_time("2022-04-31 10:00:00"):
    app.start()

Not sure.

codecov-commenter commented 1 year ago

Codecov Report

Base: 94.90% // Head: 95.20% // Increases project coverage by +0.29% :tada:

Coverage data is based on head (c9480a9) compared to base (8d3ab8a). Patch coverage: 98.36% of modified lines in pull request are covered.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #147 +/- ## ========================================== + Coverage 94.90% 95.20% +0.29% ========================================== Files 80 80 Lines 4515 4630 +115 ========================================== + Hits 4285 4408 +123 + Misses 230 222 -8 ``` | [Impacted Files](https://codecov.io/gh/Miksus/rocketry/pull/147?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Mikael+Koli) | Coverage Δ | | |---|---|---| | [rocketry/core/time/utils.py](https://codecov.io/gh/Miksus/rocketry/pull/147/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Mikael+Koli#diff-cm9ja2V0cnkvY29yZS90aW1lL3V0aWxzLnB5) | `94.73% <85.71%> (-5.27%)` | :arrow_down: | | [rocketry/session.py](https://codecov.io/gh/Miksus/rocketry/pull/147/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Mikael+Koli#diff-cm9ja2V0cnkvc2Vzc2lvbi5weQ==) | `98.17% <97.43%> (+2.28%)` | :arrow_up: | | [rocketry/core/task.py](https://codecov.io/gh/Miksus/rocketry/pull/147/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Mikael+Koli#diff-cm9ja2V0cnkvY29yZS90YXNrLnB5) | `92.17% <98.64%> (+0.98%)` | :arrow_up: | | [rocketry/conditions/api.py](https://codecov.io/gh/Miksus/rocketry/pull/147/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Mikael+Koli#diff-cm9ja2V0cnkvY29uZGl0aW9ucy9hcGkucHk=) | `98.38% <100.00%> (ø)` | | | [rocketry/conditions/meta.py](https://codecov.io/gh/Miksus/rocketry/pull/147/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Mikael+Koli#diff-cm9ja2V0cnkvY29uZGl0aW9ucy9tZXRhLnB5) | `93.87% <100.00%> (-1.68%)` | :arrow_down: | | [rocketry/conditions/scheduler.py](https://codecov.io/gh/Miksus/rocketry/pull/147/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Mikael+Koli#diff-cm9ja2V0cnkvY29uZGl0aW9ucy9zY2hlZHVsZXIucHk=) | `100.00% <100.00%> (ø)` | | | [rocketry/conditions/task/task.py](https://codecov.io/gh/Miksus/rocketry/pull/147/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Mikael+Koli#diff-cm9ja2V0cnkvY29uZGl0aW9ucy90YXNrL3Rhc2sucHk=) | `93.87% <100.00%> (ø)` | | | [rocketry/conditions/task/utils.py](https://codecov.io/gh/Miksus/rocketry/pull/147/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Mikael+Koli#diff-cm9ja2V0cnkvY29uZGl0aW9ucy90YXNrL3V0aWxzLnB5) | `90.12% <100.00%> (ø)` | | | [rocketry/conditions/time.py](https://codecov.io/gh/Miksus/rocketry/pull/147/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Mikael+Koli#diff-cm9ja2V0cnkvY29uZGl0aW9ucy90aW1lLnB5) | `95.23% <100.00%> (+0.50%)` | :arrow_up: | | [rocketry/core/log/adapter.py](https://codecov.io/gh/Miksus/rocketry/pull/147/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Mikael+Koli#diff-cm9ja2V0cnkvY29yZS9sb2cvYWRhcHRlci5weQ==) | `100.00% <100.00%> (ø)` | | | ... and [7 more](https://codecov.io/gh/Miksus/rocketry/pull/147/diff?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Mikael+Koli) | | Help us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Mikael+Koli). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Mikael+Koli)

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.