GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - kitsuyui/python-timevec

BranchesTags
Open more actions menu

Latest commit

 

History

723 Commits
723 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
examples
examples
 
 
tests
tests
 
 
timevec
timevec
 
 
.coveragerc
.coveragerc
 
 
.gitignore
.gitignore
 
 
.gitignore.in
.gitignore.in
 
 
.octocov.yml
.octocov.yml
 
 
CHANGELOG.md
CHANGELOG.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
lefthook.yml
lefthook.yml
 
 
pyproject.toml
pyproject.toml
 
 
uv.lock
uv.lock
 
 

Repository files navigation

timevec

python versions package version Coverage

Functions to create time vectors

Description

Time has a periodic nature due to the rotation of the earth and the position of the sun. This affects human behavior in various ways.

  • Seasonality ... periodicity in a year (seasonal distinction)
  • Daily periodicity ... periodicity in a day (distinction between day and night)
  • Day of the week ... periodicity in a week (distinction between weekdays and holidays)

When dealing with these, it is desirable to vectorize with periodicity in mind. That is, at 23:59 on a given day, it is desirable that the value is close to 00:00 on the next day. To achieve this, the time is represented as a combination of cos and sin. This is called a time vector.

Installation

The base package has no NumPy dependency and supports timevec.builtin_math:

pip install timevec

Install the numpy extra when you use timevec.numpy or timevec.numpy_datetime64:

pip install "timevec[numpy]"

Usage

With the base install:

import datetime
import timevec.builtin_math as tv

dt = datetime.datetime(2020, 1, 1, 0, 0, 0)
vec = tv.year_vec(dt)
# (1.0, 0.0)

With the numpy extra:

import datetime
import timevec.numpy as tv

dt = datetime.datetime(2020, 1, 1, 0, 0, 0)
vec = tv.year_vec(dt)
# array([1., 0.])

Modules

  • timevec.numpy provides functions that return numpy.ndarray.
  • timevec.numpy_datetime64 provides functions that return numpy.datetime64.
  • timevec.builtin_math provides functions that return tuple of float.

Functions

Almost same functions are provided in timevec.numpy, timevec.numpy_datetime64, and timevec.builtin_math. The difference is the return type.

year_vec

year_vec(dt: datetime.datetime)

Create a time vector for a year. This is a vector that has periodicity like seasonality. (Summer, Autumn, Winter, Spring) year_vec

month_vec

month_vec(dt: datetime.datetime)

Create a time vector for a month. This is a vector that has periodicity in a month. You can express periodicity such as the beginning of the month, the end of the month, and the salary day. month_vec

week_vec

week_vec(dt: datetime.datetime)

Create a time vector for a week. This is a vector that has periodicity in a week. You can express periodicity such as weekdays and holidays. week_vec

day_vec

day_vec(dt: datetime.datetime)

Create a time vector for a day. This is a vector that has periodicity in a day. You can express periodicity such as morning, noon, and night. day_vec

Others

  • long_time_vec ... datetime.min to datetime.max period
  • millennium_vec ... one millennium (1000 years) period
  • century_vec ... one century (100 years) period
  • decade_vec ... one decade (10 years) period

Development

This repository uses lefthook to run the same checks as CI locally, so problems surface before they reach CI.

# Install dependencies
uv sync

# Install the Git hooks (once; requires lefthook on your PATH)
lefthook install

Once installed, the hooks run automatically:

  • pre-commit: uv run poe check
  • pre-push: uv run poe check and uv run poe test

You can also run the checks manually:

uv run poe check
uv run poe test

CI still runs the full matrix (see .github/workflows/); the hooks only bring that feedback earlier on your machine.

License

BSD 3-Clause License

About

No description, website, or topics provided.

Resources

Readme
BSD-3-Clause license

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy
Activity

Stars

0 stars

Watchers

1 watching

Forks

1 fork
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.