{ "info": { "author": "Junior Polegato", "author_email": "linux@juniorpolegato.com.br", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Environment :: Win32 (MS Windows)", "Environment :: X11 Applications", "Environment :: X11 Applications :: GTK", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft", "Operating System :: Microsoft :: Windows :: Windows NT/2000", "Operating System :: OS Independent", "Operating System :: POSIX :: Linux", "Programming Language :: C", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Utilities" ], "description": "M\u00f3dulos:\n\nPoleUtil.py: v\u00e1rias fun\u00e7\u00f5es \u00fateis para o dia a dia, onde a mais importante \u00e9 a convert_and_format, que usa a localiza\u00e7\u00e3o para converter string, n\u00fameros, datas e booleano.\n\nPoleLog.py: apenas fun\u00e7\u00f5es para log e depura\u00e7\u00e3o em terminal, projetos para fazer log em arquivo em andamento\n\nPoleGTK.py: algumas classes e fun\u00e7\u00f5es que tornam o uso do GTK no Python bastante leg\u00edvel e f\u00e1cil, atualmente tem-se as fun\u00e7\u00f5es:\n- message: mensagem na tela vinculada (ou n\u00e3o) \u00e0 uma janela\n- load_images_as_icon: transforma uma imagem em um \u00edcone de stock com o mesmo nome do arquivo, onde este pode ser usado no Glade tal como \"gtk-close\" e escolher o tamanho padronizado pelo GTK\n- build_interface: juntamento com NEW_CLASSES, traduz classes do Glade para classes do PoleGTK, assim um GtkTreeView no Glade com nome iniciando com 'gr_' \u00e9 transformado em Grid do PoleGTK, GtkEntry iniciando com 'ed_' vira Editor do PoleGTK, GtkWindow iniciado por 'popup_' vira PopupWindow do PoleGTK, GtkButton do Glade iniciado por 'dt_' vira DateButton do PoleGTK. As propriedade extras dessas classes devem ser colocadas em \"Dicas de Ferramentas\" no Glade, por exemplo, no GtkEntry, iniciado com nome \"ed_...\" e na \"Dicas de ferramentas\" tiver \"[dica]|upper\" (dica \u00e9 opcional e pipe \u00e9 separador entre dica e configura\u00e7\u00f5es), todo texto digitado ser\u00e1 transformado em mai\u00fasculas. Veja o micro-tutorial no github.\n- try_function: decorador para callbacks que mostra uma janela para o usu\u00e1rio quando houver algum erro com informa\u00e7\u00f5es sucintas e imprime no terminal mais detalhes usando PoleLog.\n- load_module: carrega um outro projeto herdado de PoleGTK.Project e segura a execu\u00e7\u00e3o neste ponto\n- VirtualWidget: classe que encapsula um widget do GTK para facilitar acesso \u00e0s propriedade\n- Project: classe base para projetos usando PoleGTK que possibilita \"self.nome_widget\" acessar o widget feito com o Glade\n- Grid: classe que possibilita o tratamento de uma grade e um modelo complexo, que segura em si os valores originais e os valores formatados para apresentar na grade, uma forma muito mais amig\u00e1vel para o desenvolvedor e o usu\u00e1rio, utiliza o PoleUtil.convert_and_format. Se a coluna for do tipo float, ser\u00e1 apresentado '9.999.999,99' por exemplo, se for int ser\u00e1 '9.999.999', ser for bool ser\u00e1 uma caixa de verifica\u00e7\u00e3o, se for date ser\u00e1 'dd/mm/yyyy', , se for time ser\u00e1 'hh:mm:ss' e assim por diante\n- GridRow: uma linha da grade retornada como iterador, por exemplo quando se faz \"for linha in grade\", a\u00ed pode-se acessar a coluna pelo nome com linha[\"coluna\"] ou pelo n\u00famero linha[n], e retorna um tupla com o valor original e o formatado.\n- PopupWindow: cria um popup e o posiciona a partir de um widget, ficando abaixo deste, como calend\u00e1rio, ou centralizado e d\u00e1 um retorno que quiser ao ser chamado com run() e fica parado neste ponto.\n- DateButton: um bot\u00e3o que exibe em seu label uma data, m\u00eas e/ou hora e ao clicar abre um calend\u00e1rio especial de acordo com o tipo.\n- Calendar: calend\u00e1rio especial baseado em PopupWindow e usado por DateButton\n\nPolePDF.py: usado para gerar pdf usando c\u00e9lulas e tabelas de forma bem intuitiva, baseado em reportlabs, onde estes objetos j\u00e1 se encaixando da esquerda para a direita e de cima para baixo (teoria de cortes de planos), ou podem ser posicionados de forma flutuante e absoluta\n\nPoleRelatorio.py: m\u00f3dulo para criar relat\u00f3rios em PDF a partir de alguns par\u00e2metros e dados, usando c\u00e9lulas e tabelas via PolePDF\n\nPoleXML.py: uma pytoniza\u00e7\u00e3o do libxml2, assim pode-se criar/alterar/obter um atribo xml com `xml.no['atrubuto'] = 'valor'\u00b4 e o conte\u00fado de um n\u00f3 com `xml.no = 'conte\u00fado'\u00b4 e a estrutura se auto gera ao fazer `xml.no1.no2.no3 = 'teste'\u00b4\n\nPoleXmlSec.c: em CPython, assina XML e verifica (ainda com problemas a verifica\u00e7\u00e3o)\n\nPoleNFe.py: utiliza o suds para wsdl e uma estrutura de diret\u00f3rios que deve ser especialmente prepara para utilizar os webservices da Nota Fiscal Eletr\u00f4nica\n\nPoleDANFe.py: gera DANFe em PDF a partir de uma tabela de banco de dados ou XML (ainda terminando)\n\n\nAl\u00e9m disso, ainda vinculado tem o Projeto GladePy, que l\u00ea um arquivo .ui gerado pelo Glade e cria ou atualizar um .py pronto para desenvolver, com todas as fun\u00e7\u00f5es de callback criadas no Glade e com os devidos imports, al\u00e9m de possibilitar que se inclua no c\u00f3digo a .ui de forma \"criptografada\" onde n\u00e3o \u00e9 preciso ter a interface num arquivo separado, bom para distribuir vers\u00f5es est\u00e1veis. Para terminar, fiz uma altera\u00e7\u00e3o no Glade que possibilita chamar um programa externo com informa\u00e7\u00e3o do arquivo .ui e da fun\u00e7\u00e3o callback que foi clicada, no caso chamando o GladePy, ele j\u00e1 atualiza o .py e te posiciona nessa fun\u00e7\u00e3o usando o Geany, mas pode ser configurado outro editor, desde que ele tenha par\u00e2metro para posicionamento em linha e coluna atrav\u00e9s do arquivo $HOME/.gladepy.conf", "description_content_type": "text/plain", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/pole/", "keywords": "pole,pygtk,gtk,gtk+,nfe,xml,pdf,util", "license": "LICENSE.txt", "maintainer": "", "maintainer_email": "", "name": "pole", "package_url": "https://pypi.org/project/pole/", "platform": "", "project_url": "https://pypi.org/project/pole/", "project_urls": { "Homepage": "http://pypi.python.org/pypi/pole/" }, "release_url": "https://pypi.org/project/pole/1.2.0/", "requires_dist": null, "requires_python": "", "summary": "A micro framework for PyGtk, PDF, XML, Utilities and Brazilan NFe.", "version": "1.2.0" }, "last_serial": 5278927, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "1b2a7c34d5dc5f7b78d181e5ce2af5f7", "sha256": "663cafcc613463fa690fa115eaf9ed83b6a886af7605f2090e3b12019544dae3" }, "downloads": -1, "filename": "pole-1.0.0.zip", "has_sig": false, "md5_digest": "1b2a7c34d5dc5f7b78d181e5ce2af5f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13478676, "upload_time": "2016-03-16T04:07:57", "url": "https://files.pythonhosted.org/packages/12/0a/8e247f6e00a195a5fecd02066d1535a23abe4b099324a7e5e4a36368eb4e/pole-1.0.0.zip" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "126a16002e893852d5fddf7ee0b072fe", "sha256": "0cb7475ed81e756ae2ff4cdeb35039ff959d0e6409fa17d9a1dc220c120f441d" }, "downloads": -1, "filename": "pole-1.1.0.tar.gz", "has_sig": false, "md5_digest": "126a16002e893852d5fddf7ee0b072fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12445828, "upload_time": "2016-04-20T03:05:23", "url": "https://files.pythonhosted.org/packages/08/dd/cc029bb4d7a9740c05257bd4c49531da09ebdbc4f4aefa5105a8828d3c82/pole-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "0331e112b7f66384f89b4e18b1e429fd", "sha256": "b974ae0fb3d793750e6c8edbef4cc85ff62cd7eaee8d50e21bcd432f2fdf8fbc" }, "downloads": -1, "filename": "pole-1.1.1.tar.gz", "has_sig": false, "md5_digest": "0331e112b7f66384f89b4e18b1e429fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12441478, "upload_time": "2016-04-20T13:26:07", "url": "https://files.pythonhosted.org/packages/85/2b/3869c403e644c46a5821ebc3427589b2a927f3a0414408689caaf2e792e2/pole-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "5794a60710eb754b94b5ce746b974d26", "sha256": "1d6024749b4af179a5ffa9979f697dd10f7b3a65610772809bbc10257c3aee3b" }, "downloads": -1, "filename": "pole-1.1.2.tar.gz", "has_sig": false, "md5_digest": "5794a60710eb754b94b5ce746b974d26", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12441640, "upload_time": "2016-05-18T20:16:34", "url": "https://files.pythonhosted.org/packages/71/fb/bcb2066e301c570671ad713b3ce7372846cf73fa1e22b4aa162966f4732e/pole-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "b588fc11dd5ccececbe13ca4005cb700", "sha256": "b3e9849bcd7855c6e625d63bb7dca93a6b4397fe843f6d524ca613be679d763c" }, "downloads": -1, "filename": "pole-1.1.3.tar.gz", "has_sig": false, "md5_digest": "b588fc11dd5ccececbe13ca4005cb700", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12435205, "upload_time": "2016-07-22T15:00:41", "url": "https://files.pythonhosted.org/packages/08/36/0e5940062d1e468587686cbedfee55e63366d4c45204ba74f32542463dc2/pole-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "8a7fed885d24eddc0d9ed008d76f5140", "sha256": "db23858b8c62bbe1774948f97f4122fc864de46aa52161a0fa12009add1b5979" }, "downloads": -1, "filename": "pole-1.1.4.tar.gz", "has_sig": false, "md5_digest": "8a7fed885d24eddc0d9ed008d76f5140", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12435231, "upload_time": "2016-07-22T15:28:03", "url": "https://files.pythonhosted.org/packages/1b/50/bd0512a10e50e598fad2869afc453c1ccf1d5a2b41afa00b4043a712eec8/pole-1.1.4.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "81bd1684c631c55da2dbc2fdb8730ba1", "sha256": "602f9bc80f84356f00d5b133c1407413f476aa6e62d87be63d5deefbec8496cf" }, "downloads": -1, "filename": "pole-1.2.0.tar.gz", "has_sig": false, "md5_digest": "81bd1684c631c55da2dbc2fdb8730ba1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12772046, "upload_time": "2019-05-16T19:19:31", "url": "https://files.pythonhosted.org/packages/2d/3b/32b0ded66c7d215f90584b3cbb018bfd0764da0dd080b11d68551159cfe0/pole-1.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "81bd1684c631c55da2dbc2fdb8730ba1", "sha256": "602f9bc80f84356f00d5b133c1407413f476aa6e62d87be63d5deefbec8496cf" }, "downloads": -1, "filename": "pole-1.2.0.tar.gz", "has_sig": false, "md5_digest": "81bd1684c631c55da2dbc2fdb8730ba1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12772046, "upload_time": "2019-05-16T19:19:31", "url": "https://files.pythonhosted.org/packages/2d/3b/32b0ded66c7d215f90584b3cbb018bfd0764da0dd080b11d68551159cfe0/pole-1.2.0.tar.gz" } ] }