Skip to main content

Implementação em Python de biblioteca para trabalhar com Competencias no estilo YYYYMM.

Project description

Python Competencias

Coverage Status

Implementação em Python de biblioteca para trabalhar com Competencias no estilo YYYYMM.

Retorna a lista de competêncais dada uma faixa de competências, a competência atual, a competência passada e a competência futura. Como atual entende-se o timestamp do now(). Cada competência tem os atributos as_int, as_decimal, as_date, as_datetime, as_time e as_string, conforme documentado abaixo.

Como usar

pip install competencias
from competencias import Competencia

# para a competência atual
Competencias.current

# para a próxima competência
Competencias.current.next

# para a competência anterior
Competencias.current.previous

# para a competência 202301
Competencias.get_instance(date(2023, 1, 25))

# para a competência 2022/12, partindo da competência 2023/01
Competencias.get_instance(date(2023, 1, 25)).previous

# para as competências entre 2022/01 e 2023/11
for c in Competencias.range(date(2022, 1, 1), date(2023, 11, 2)):
    print(c)

# para o ano da competência
Competencias.get_instance(date(2024, 2, 25)).date.year == 2024
Competencias.get_instance(date(2024, 2, 25)).year == 2024

# para o mês da competência
Competencias.get_instance(date(2024, 2, 25)).date.month == 2
Competencias.get_instance(date(2024, 2, 25)).month == 2

# para como uma inteiro 202301
Competencia.get_instance(date(2023, 1, 30)).as_int == 202301

# para como uma float 2023.01
Competencia.get_instance(date(2023, 1, 30)).as_float == 2023.01

# para como uma float (2023, 1)
Competencia.get_instance(date(2023, 1, 30)).as_tuple == (2023, 1)

# para o primeito dia da competência 2023/12
Competencia.get_instance(date(2023, 12, 25)).first_date == date(2023, 12, 1)

# para o último dia da competência 2023/12
Competencia.get_instance(date(2023, 12, 25)).last_date == date(2023, 12, 31)

# para o primeiro carimbo de tempo da competência 2023/12
Competencia.get_instance(date(2023, 12, 25)).first_datetime == datetime(2023, 12, 1, 0, 0, 0)

# para o último carimbo de tempo da competência 2023/12
Competencia.get_instance(date(2023, 12, 25)).last_datetime == datetime(2023, 12, 31, 23, 59, 59)

# para o primeiro carimbo de tempo da competência 2023/12
Competencia.get_instance(date(2023, 12, 25)).first_timestamp == 1701399600.0

# para o último carimbo de tempo da competência 2023/12
Competencia.get_instance(date(2023, 12, 25)).last_timestamp == 1704077999.0

# Para validar datas mínimas, todas linhas
class CompetenciaComMinimo(Competencia):
    MIN_DATE = date(2023, 11, 1)
    MIN_DATETIME = datetime(2023, 11, 1, 23, 59, 59)
    MIN_INT = 1700530519
    MIN_FLOAT = 1700530519.0

# Agora todas as linhas abaixo vão lançar um exception
CompetenciaComMinimo.get_instance(date(2023, 12, 1))
CompetenciaComMinimo.get_instance(datetime(2023, 12, 1, 23, 59, 59))
CompetenciaComMinimo.get_instance(1800530519)
CompetenciaComMinimo.get_instance(1800530519.0)

class CompetenciaComMinimo(Competencia):
    MIN_DATE = date(2023, 11, 1)
    MIN_DATETIME = datetime(2023, 11, 1, 23, 59, 59)
    MIN_INT = 1700530519
    MIN_FLOAT = 1700530519.0

# Agora todas as linhas abaixo vão lançar um exception
CompetenciaComMinimo.get_instance(date(2023, 12, 1))
CompetenciaComMinimo.get_instance(datetime(2023, 12, 1, 23, 59, 59))
CompetenciaComMinimo.get_instance(1800530519)
CompetenciaComMinimo.get_instance(1800530519.0)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

competencias-1.0.3.tar.gz (4.3 kB view details)

Uploaded Source

File details

Details for the file competencias-1.0.3.tar.gz.

File metadata

  • Download URL: competencias-1.0.3.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.7

File hashes

Hashes for competencias-1.0.3.tar.gz
Algorithm Hash digest
SHA256 7874a744e32f8202c451e68c23b3fe5773397c24a0af7b59b4f3c21e74117e65
MD5 fc702e8eadae6c9b00f06a4d826925aa
BLAKE2b-256 1a943bc4d58ae41f99da1ecd5acf6abe09cc82992c01c217119a692c01409a19

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page