image

Bootcamps ilimitados + curso de inglês para sempre

80
%OFF

JM

Jonathas Miante28/07/2025 20:47
Compartilhe
Suzano - Python Developer #2Recomendados para vocêSuzano - Python Developer #2

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
    

    image

    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

    image

    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)

    Compartilhe
    Recomendados para você
    Suzano - Python Developer #2
    GFT Start #7 .NET
    GFT Start #7 - Java
    Comentários (1)
    DIO Community
    DIO Community - 29/07/2025 10:28

    Excelente, Jonathas! Que artigo super interessante sobre o Framework CollectionPy! É fascinante ver como você aborda essa ferramenta poderosa, projetada para simplificar e aprimorar tarefas relacionadas à manipulação de datas, formatação de números em texto e criação rápida de gráficos, tudo em Python.

    Você demonstrou que a coleção Date facilita a manipulação de datas, a coleção Text a formatação de números e a coleção Chart a criação de gráficos web com base no ApexCharts. Sua análise das funções como lastDay, getUtilDay, add, dateDiff, number_to_money e Chart (para ApexCharts) mostra o objetivo de oferecer uma solução eficiente e intuitiva para operações comuns no desenvolvimento de aplicativos.

    Considerando que o módulo ApexCharts do CollectionPy foi criado com o objetivo principal de facilitar a criação de gráficos WEB, qual você diria que é o maior benefício para um desenvolvedor Python ao utilizar esse módulo para criar gráficos para um framework web, em termos de agilidade e simplificação do processo de visualização de dados, em vez de manipular o JavaScript do ApexCharts diretamente?

    Recomendados para vocêSuzano - Python Developer #2