Collectionpy Framework
Fala pessoal, blz?
Nesse artigo vamos falar sob o Framework CollectionPy.
O Framework CollectionPy é uma ferramenta poderosa projetada para simplificar e aprimorar suas tarefas relacionadas à manipulação de datas, formatação de números em texto e criação rápida de gráficos. Este framework foi desenvolvido com o objetivo de oferecer uma solução eficiente e intuitiva para lidar com operações comuns no desenvolvimento de aplicativos, proporcionando uma experiência de programação mais eficaz e produtiva.
Documentação Oficial: https://campcodebrasil.github.io/collectionpy/
GITHUB: campcodebrasil/collectionpy
Instalação:
pip install collectionpy
Versão: 1.2.0
Date (collectionpy.date)
A coleção Date, tem como objetivo facilitar a manipulação de datas, sejam para realizar cálculos com datas como recuperar informações de datas relativas
- lastDay(dt:datetime)
- Retorna o último dia do mês (em número) | Ex: lastDay(datetime(2024,1,5)) => 31
- lastDate(dt:datetime)
- Retorna o último dia do mês (em datetime) | Ex: lastDay(datetime(2024,1,5)) => datetime(2024,1,31)
- getUtilDay(dt:datetime, util_day:int, disregard:list, last_day:boolean)
- Retorna a data de um dia útil desejado (Considera apenas dias de semana como dia útil)
- dt (Obrigatório) => Deve ser uma data no formato datetime => irá considerar o mês e o Ano da data informada
- util_day (Obrigatório) => Deve seu um número inteiro => Qual o dia útil que quer recuperar
- disregard (Opcional) => Deve ser uma lista de números => Será desconsiderados como dia útil os números informados (Ex: 7, irá desconsiderar o dia 7 como dia útil), como a função não reconhece feriados automaticamente, esse parâmetro serve para informar manualmente os dias para desconsiderar
Exemplo:
from collectionpy.date.dtget import getUtilDay
from datetime import datetime
agora = datetime(2024, 1, 5)
decimo_dia_util = getUtilDay(agora, 10, [1])
print(decimo_dia_util)
Saída:
2024-01-15 00:00:00
dtmath (collectionpy.date.dtmath)
- add(dt, year:int, month:int, day:int, hour:int, minute:int, second:int)
- Retorna uma data adicionando o tempo de acordo com o informado nos parâmetros
Exemplo:
from collectionpy.date.dtmath import add
from datetime import datetime
atual = datetime(2024, 1, 5)
proximo_dia = add(atual, day=1)
dia_anterior = add(atual, day=-1)
proximo_mes = add(atual, month=1)
mes_anterior = add(atual, month=-1)
proximo_ano = add(atual, year=1)
ano_anterior = add(atual, year=1)
print(atual)
print(proximo_dia)
print(dia_anterior)
print(proximo_mes)
print(mes_anterior)
print(proximo_ano)
print(ano_anterior)
SAÍDA:
2024-01-05 00:00:00
2024-01-06 00:00:00
2024-01-04 00:00:00
2024-02-05 00:00:00
2023-12-05 00:00:00
2025-01-05 00:00:00
2025-01-05 00:00:00
dateDiff(first_dt:datetime, second_dt:datetime, on='month')
Retorna a diferença entre duas datas de acordo com o parâmetro on
- first_dt (datetime) => Data inicial
- second_dt (datetime) => Data Final
- on (string) ['day', 'month', 'year'] => Tipo de retorno
Exemplo:
from collectionpy.date.dtmath import dateDiff
from datetime import datetime
data_inicial = datetime(2022, 1, 5)
data_final = datetime(2024, 1, 5)
dif_dias = dateDiff(data_inicial, data_final, 'day')
dif_mes = dateDiff(data_inicial, data_final, 'month')
dif_ano = dateDiff(data_inicial, data_final, 'year')
print(dif_dias)
print(dif_mes)
print(dif_ano)
SAÍDA
730
24
2
Text (collectionpy.text)
A coleção Text, tem como objetivo facilitar a exibição de strings e conversão de variável para string
number_to_money (collectionpy.text.number_to_money)
number_to_money(number, simbol=False, txt_simbol='brl')
Converte um número para Texto no formato de moeda
- number(Obrigatório) => Número que será convertido em String
- simbol(default=False) => Será exibido o simbolo da Moeda?
- txt_simbol(default='brl') => ['brl', 'us']
- 'blr' => R$
- 'us' => $
number_to_percent (collectionpy.text.number_to_percent)
number_to_percent(number, simbol=False)
Converte um número para Texto no formato de porcentagem
- number(Obrigatório) => Número que será convertido em String
- simbol(default=False) => Será exibido o simbolo da procentagem?
Chart (collectionpy.chart)
A coleção Chart, tem como objetivo facilitar a criação de gráficos web, podendo ser utilizada em qualquer framework web python (django, flask, ...)
ApexCharts (collectionpy.chart.apexcharts)
Chart(x:[], y:[], y_label=[], plot_type='bar', chartId='CollectionPyChart', foreColor='343E59', background= 'fff', fontFamily= "Crimson Text", fontSize = 12, width = None, height = None, dropShadowTop = -7, dropShadowLeft = 7, dropShadowBlur = -10, borderRadius = 5, borderColor = '6e7eaa', borderRight = 25, borserLeft = 15, palette = 2 )
Esse módulo foi criado baseado no framework JS ApexCharts, sendo o objetivo principal desse módulo é facilitar a criação de gráficos WEB, caso deseje saber mais sobre o framework ApexCharts clique aqui para acessar a documentação oficial
x (default = []) => Valores do Eixo X, deve ser uma lista de Strings (os dados do Eixo Y serão preenchidos até o limite do eixo X)
Exemplo: ['Piracicaba', 'Americana', 'São Paulo']
y (default = [[]]) => Valores do Eixo Y, deve ser uma lista de listas numérica, caso não tenha valor suficiente no eixo X os valores serão desconsiderados
Exemplo: [
[8, 2, 15, 24],
[12, 5, 2]
]
*** O valor 24 da primeira lista numérica será desconsiderado, pois no eixo X possui apenas 3 posições
y_label (default = []) => Valores do Label do Eixo X, deve ser uma lista de Strings devende ter a mesma quantidade de lista numérica do eixo Y (Caso a Lista seja maior, será desconsiderados as posições maiores do eixo Y, caso seja menor, será atribuido o número do indice no nome)
Exemplo: ['Orçado', 'Realizado']
plot_type (default = 'bar') => Define o tipo de Gráfico, sendo as opções: bar ou line
Obs: Para mais tipos deve ser utilizado a biblioteca JS
chartId (default = 'CollectionPyChart') => Define o id do Gráfico
foreColor (default = '343E59') => Define a cor de Texto do Gráfico
background (default = 'fff') => Define a cor de Fundo do Gráfico
fontFamily (default = 'Crimson Text') => Define a Fonte dos textos do Gráfico
fontSize (default = 12) => Define o tamanho do Texto do Gráfico
width (default = None) => Define a largura do Gráfico (None define como automático)
height (default = None) => Define a altura do Gráfico (None define como automático)
dropShadowTop (default = -7) => Posição TOP da Sombra do Gráfico
dropShadowLeft (default = 7) => Posição LEFT da Sombra do Gráfico
dropShadowBlur (default = -10) => Tamanho do BLUR da Sombra do Gráfico
borderRadius (default = 5) => Tamanho do Radius borda do Gráfico
borderColor (default = '6e7eaa') => Cor da borda do Gráfico
borderRight (default = 25) => Tamanho da borda Direita do Gráfico
borderLeft (default = 15) => Tamanho da borda Esquerda borda do Gráfico
palette (default = 2) => Palleta de Cor do Gráfico (1 à 5)