Re: [Python-es] [Py-ES] Sistemas de colas

2021-07-06 Por tema Nekmo
Para nada ha sido pedante o chapas Lasizoillo, es genial contar con
comentarios tan completos y tan bien documentados, ¡gracias! :)

Nunca me había parado a mirar sobre extender Celery, y ahora ya sé por
dónde empezar. Por curiosidad, ¿para qué habéis tenido la necesidad de
ampliarlo?

En mi caso uso Celery por los mismos motivos, ya que se adapta a las
necesidades de cualquier proyecto sin necesidad de conocer todos sus
requerimientos. Además, al usarlo en más proyectos, adquiero conocimiento
reaprovechable. Otra ventaja es su robustez, su documentación y añadiría su
monitorización. Es importante monitorizar el correcto funcionamiento de las
colas, y para Celery al ser tan utilizado hay muchos recursos.

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Google+: Nekmo Com


El mar, 6 jul 2021 a las 8:17, Federico Mon () escribió:

> Es un buen apunte, yo no he trabajado con procesos que consumiesen tanta
> RAM
>
> On July 5, 2021 11:12:24 PM GMT+02:00, Jose Manuel 
> wrote:
>>
>> Quería señalar que si te quedas sin RAM y el trabajo está ya lanzado, si
>> te quedas sin el.
>>
>> Y aunque hagas try, except finally. Al ser matado por el sistema no lo
>> captura ni el try ni sentry.
>>
>> Hablo de creación de ficheros de más de 10GB .
>>
>> Y lo resalto porque bueno, parece obvio cuando ya lo sabes, pero cuando
>> no, te pegas de leches con los try except...
>>
>> El lun., 5 jul. 2021 22:41, Federico Mon  escribió:
>>
>>> Yo he usado Celery (poco) y Redis Queue (algo más) y me quedo con este
>>> último.
>>>
>>> En general, no tengo la experiencia de que se mueran los workers. Los
>>> trabajos pueden fallar, si salta alguna excepción, etc, pero con un Sentry
>>> o similar puedes estar al tanto.
>>>
>>> Creo que en tu caso sería levantar tantos workers como cores tengas, y
>>> así no te excedes con los trabajos simultáneos. Quizás meterlo bajo un
>>> supervisor para asegurarte de que no mueren?
>>>
>>> On July 5, 2021 9:30:25 PM GMT+02:00, Felipe Maza 
>>> wrote:
>>>>
>>>> Hola,
>>>>
>>>> Llevo unos días viendo diferentes programas para gestionar sistemas de
>>>> colas y, en principio, creo que casi todos parecen complejos para lo que
>>>> necesito.
>>>>
>>>> Mi problema a resolver es el siguiente, tenemos un modelo de predicción
>>>> que se ejecuta periódicamente y también bajo demanda del usuario. Ese
>>>> modelo se ejecuta en un solo hilo y tarda bastantes minutos en completar la
>>>> tarea. Por tanto, puedo tener varias ejecuciones simultáneas siempre que no
>>>> excedamos el número de cores disponibles, ya que en ese caso se vuelve el
>>>> sistema excesivamente lento. Al modelo se le invoca a través de una pequeña
>>>> api hecha con flask. En el futuro puede que haya otros modelos en la
>>>> misma máquina.
>>>>
>>>> Hace un par de años para un problema similar ya me programé mi propio
>>>> gestor de colas rudimentario,pero ahora busco algo que sea estable, con
>>>> pocos bugs, mantenible, etc.
>>>>
>>>> Las características que (creo que) necesito son:
>>>> - Encolar tareas (logicamente)
>>>> - Tener colas con diferente prioridad (manuales, periódicas).
>>>> - Registrar la salida, tanto si ha tenido éxito como si ha tenido
>>>> errores.
>>>> - (opcional) En un futuro ejecutar otras apis con modelo en la misma
>>>> máquina.
>>>>
>>>>
>>>> Lo primero que he explorado ha sido Celery, y es impresionante el
>>>> montón de posibilidades que ofrece, tantas que ir poco más de los ejemplos
>>>> iniciales me parece muy complejo para solucionar el problema anterior. Me
>>>> da la sensación que hay que controlar un montón de aspectos para montarlo y
>>>> mantenerlo correctamente; y que cuando aparezca algún error no va a ser
>>>> rápido dar con la solución.
>>>>
>>>> Después de mirar otras alternativas, con la que parece que he montado
>>>> una primera versión que parece que me lo soluciona, es Redis Queue (
>>>> https://python-rq.org/). La forma en la que utiliza Redis es
>>>> relativamente simple, y más o menos ofrece lo que necesito.
>>>> En el tema de los worker creo que ahí flojea un poco, pues parece que
>>>> tendré que gestionar manualmente cuántos hay arrancados y si no se han
&

Re: [Python-es] Elección de tecnologías para la web de Python España

2016-06-12 Por tema Nekmo
La conversación se va a mover a la lista general. Por favor, no
responder en esta lista. Gracias, y perdonad.


El día 12 de junio de 2016, 21:37, Nekmo  escribió:
> ¡Hola a todos!
>
> Me uní hace poco tiempo a Python España, y como nuevo miembro, busco a
> ver cómo puedo aportar a la asociación :)
>
> Hablando con Juan Luis, éste me comentó que haría falta mejorar la web
> actual. Como desarrollador web, me ofrecí voluntario a echar una mano
> al respecto. Actualmente la web usa Django, y creo que por su
> popularidad sigue siendo buena idea usarlo (aunque cada uno puede
> aportar alternativas). A parte, también propuse usarlo junto con
> DjangoCMS, por su versatilidad, comunidad y uso.
>
> Como la elección de ambas tecnologías son algo más bien subjetivo (por
> usarlas en el trabajo), escribo este email para ver si a la gente le
> parece bien el uso de ambas opciones, y recibir nuevas sugerencias.
>
> Escribo esto por esta lista porque actualmente no tengo acceso a la
> lista oficial de la asociación. Este es un email relacionado con
> únicamente con la asociación.
>
> Por favor, si se sugiere una nueva tecnología, estaría bien poder
> recibir sus razones para la elección de dicha tecnología, haberla
> usado personalmente, y a ser posible, poder colaborar con el proyecto
> para hacer uso de sus conocimiento en dicha tecnología. Por supuesto,
> dichas tecnologías deben estar basadas en Python :)
>
> Así pues, comienzo yo con las 2 propuestas iniciales:
>
> Django:
> --
> Probablemente el framework más popular en Python. Gran comunidad y
> cantidad de opciones de serie. Permite un desarrollo rápido. Usado por
> webs como Pinterest o Lawrence. Framework modular con muchos módulos
> disponibles. Tiene una especificación para la creación de los módulos.
> Se trata de un framework MVC. Posee su propio sistema de db y
> templates. Altamente escalable. Excelente documentación
>
> https://www.djangoproject.com/
>
> DjangoCMS:
> 
> CMS de uso empresarial para Django. Permite la creación de páginas de
> contenido y posee gran cantidad de plugins y apps. Tiene apps para
> blog, categorización de personas, ofertas de trabajo... según Juan
> Luis son todas cosas que nos hacen falta y ya están hechas para
> DjangoCMS. No es nada intrusivo, y permite adaptar fácilmente apps de
> Django a DjangoCMS. Las páginas son completamente personalizables, al
> poseer un sistema de bloques al que pueden añadirse plugins de mapas,
> texto, comentarios, entre otras tantas cosas. Mantiene un Django muy
> puro, al utilizar el mismo sistema de back (Django Admin), el cual
> integra para la administración en el front con modales. Tiene detrás
> empresas grandes como Divio o Nephila. La primera, posee además
> Aldryn, una plataforma de Cloud y alojamiento para sitios DjangoCMS.
> Podemos hablar con ellos para ver si nos alojan :) Es totalmente
> software libre. Grandes empresas utilizan DjangoCMS como National
> Geographic, Loreal, NASA, Salt., Canonical, PBS, Parrot... Buena
> documentación.
>
> https://www.django-cms.org/en/
>
> Demo: https://control.aldryn.com/demo/get-new/
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


[Python-es] Elección de tecnologías para la web de Python España

2016-06-12 Por tema Nekmo
¡Hola a todos!

Me uní hace poco tiempo a Python España, y como nuevo miembro, busco a
ver cómo puedo aportar a la asociación :)

Hablando con Juan Luis, éste me comentó que haría falta mejorar la web
actual. Como desarrollador web, me ofrecí voluntario a echar una mano
al respecto. Actualmente la web usa Django, y creo que por su
popularidad sigue siendo buena idea usarlo (aunque cada uno puede
aportar alternativas). A parte, también propuse usarlo junto con
DjangoCMS, por su versatilidad, comunidad y uso.

Como la elección de ambas tecnologías son algo más bien subjetivo (por
usarlas en el trabajo), escribo este email para ver si a la gente le
parece bien el uso de ambas opciones, y recibir nuevas sugerencias.

Escribo esto por esta lista porque actualmente no tengo acceso a la
lista oficial de la asociación. Este es un email relacionado con
únicamente con la asociación.

Por favor, si se sugiere una nueva tecnología, estaría bien poder
recibir sus razones para la elección de dicha tecnología, haberla
usado personalmente, y a ser posible, poder colaborar con el proyecto
para hacer uso de sus conocimiento en dicha tecnología. Por supuesto,
dichas tecnologías deben estar basadas en Python :)

Así pues, comienzo yo con las 2 propuestas iniciales:

Django:
--
Probablemente el framework más popular en Python. Gran comunidad y
cantidad de opciones de serie. Permite un desarrollo rápido. Usado por
webs como Pinterest o Lawrence. Framework modular con muchos módulos
disponibles. Tiene una especificación para la creación de los módulos.
Se trata de un framework MVC. Posee su propio sistema de db y
templates. Altamente escalable. Excelente documentación

https://www.djangoproject.com/

DjangoCMS:

CMS de uso empresarial para Django. Permite la creación de páginas de
contenido y posee gran cantidad de plugins y apps. Tiene apps para
blog, categorización de personas, ofertas de trabajo... según Juan
Luis son todas cosas que nos hacen falta y ya están hechas para
DjangoCMS. No es nada intrusivo, y permite adaptar fácilmente apps de
Django a DjangoCMS. Las páginas son completamente personalizables, al
poseer un sistema de bloques al que pueden añadirse plugins de mapas,
texto, comentarios, entre otras tantas cosas. Mantiene un Django muy
puro, al utilizar el mismo sistema de back (Django Admin), el cual
integra para la administración en el front con modales. Tiene detrás
empresas grandes como Divio o Nephila. La primera, posee además
Aldryn, una plataforma de Cloud y alojamiento para sitios DjangoCMS.
Podemos hablar con ellos para ver si nos alojan :) Es totalmente
software libre. Grandes empresas utilizan DjangoCMS como National
Geographic, Loreal, NASA, Salt., Canonical, PBS, Parrot... Buena
documentación.

https://www.django-cms.org/en/

Demo: https://control.aldryn.com/demo/get-new/
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Post-install en setup.py con Wheel

2016-06-06 Por tema Nekmo
Oh, que otra gente hiciese el trabajo por mí estaría genial... pero me
temo que mi proyecto no es lo bastante conocido ni usado como para
ello xD

Yo también evito siempre que puedo utilizar "sudo pip install" sobre
todo porque luego las dependencias instaladas pueden dar problemas con
las del sistema, pero como dices, no hay mucha más solución debido a
la naturaleza del proyecto. En otros proyectos intento incluso
incentivar que la gente lo instale en un virtualenv, pero aquí es
imposible.

Ante todo, gracias :)

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Google+: Nekmo Com


El día 6 de junio de 2016, 16:22, Juan Luis Cano  escribió:
> La verdad, si yo fuera tú lo dividiría en dos pasos, te quitarás de
> bastantes problemas...
>
> Por otro lado: veo que pones `sudo pip install`. Yo lo evito como la peste
> porque tiene consecuencias indeseadas y conduce a mensajes de error
> rarísimos, pero entiendo por la naturaleza de tu biblioteca que tiene que
> ser así. ¿No has pensado mejor que otra gente empaquete tu biblioteca para
> cada distribución de Linux?
>
> 2016-06-06 16:08 GMT+02:00 Nekmo :
>>
>> No te preocupes, sé perfectamente que está desaconsejado y soy
>> consciente de los riesgos y problemas :)
>>
>> Según entiendo, lo que propones es hacer esto, ¿no?
>>
>>
>> class FakeBdistWheel(Command):
>> description = 'Faked Wheel'
>> user_options = []
>>
>> def initialize_options(self):
>> pass
>>
>> def finalize_options(self):
>> pass
>>
>> def run(self):
>> print('Sorry, but wheel is not supported for this package!')
>>
>>
>> setup(
>> cmdclass={'install': SystemInstallCommand, 'bdist_wheel':
>> FakeBdistWheel},
>> ...
>>
>>
>> Como dices, el paquete se instala correctamente, pero el mensaje de
>> error hace pensarse a la gente que ha habido un error, y me mandan
>> emails pidiéndome ayuda :(
>>
>> Mi intención es que esto sea algo temporal, hasta que tenga paquetes
>> para las principales distribuciones. Pero claro, como es algo tedioso
>> y pesado, hasta ese momento prefiero dejarle el trabajo sucio al
>> gestor de paquetes de Python. Estoy barajando también la opción de
>> dividir el proceso de instalación en 2 pasos:
>>
>> sudo pip install simple-monitor-alert && sudo python -m
>> simple_monitor_alert.install
>>
>> Saludos, ¡y gracias!
>>
>>
>> Un cordial saludo:
>> -- Nekmo.
>>
>> Sitio web: http://nekmo.com
>> Dirección de contacto: conta...@nekmo.com
>> XMPP/Jabber: conta...@nekmo.com
>> Google+: Nekmo Com
>>
>>
>> El día 6 de junio de 2016, 6:41, Juan Luis Cano 
>> escribió:
>> > En realidad, lo que ocurre es que se intenta construir un wheel por cada
>> > paquete que estás instalando y sus dependencias pero este paso falla por
>> > lo
>> > que has comentado. Sin embargo, a juzgar por el log todo se instala
>> > correctamente y en principio deberías poder importar el paquete con
>> > normalidad. De hecho acabo de probarlo y me funciona:
>> >
>> > $ pip install simple-monitor-alert
>> > # Mensaje de error al crear wheel, instalación exitosa
>> > $ python
>> >>>> import simple_monitor_alert
>> >>>> simple_monitor_alert.__version__
>> > '0.2.3'
>> >
>> > Lo que puedes hacer es sobreescribir el comando bdist_wheel para impedir
>> > su
>> > ejecución, mostrar un mensaje o simplemente no hacer nada.
>> >
>> > En principio los scripts de post-instalación dejarán de ser un hack
>> > cuando
>> > se termine la PEP 426:
>> >
>> > https://www.python.org/dev/peps/pep-0426/
>> >
>> > Mientras tanto, el consenso de la comunidad es que «lo estás haciendo
>> > mal».
>> >
>> > Espero que te sirva, un saludo:
>> >
>> > Juanlu
>> >
>> >
>> >
>> > On 2016-06-06 03:54, Nekmo wrote:
>> >>
>> >> Buenas a todos.
>> >>
>> >> Tengo un paquete que requiere de pasos adicionales para su instalación
>> >> en el sistema, ya que no es una biblioteca sino una aplicación. Entre
>> >> otras cosas hace:
>> >> - Instalar servicios (init, systemd).
>> >> - Actualizar los archivos de configuración, si se necesitase.
>> >> - Crear enlaces simbólicos.
>>

Re: [Python-es] Post-install en setup.py con Wheel

2016-06-06 Por tema Nekmo
No te preocupes, sé perfectamente que está desaconsejado y soy
consciente de los riesgos y problemas :)

Según entiendo, lo que propones es hacer esto, ¿no?


class FakeBdistWheel(Command):
description = 'Faked Wheel'
user_options = []

def initialize_options(self):
pass

def finalize_options(self):
pass

def run(self):
print('Sorry, but wheel is not supported for this package!')


setup(
cmdclass={'install': SystemInstallCommand, 'bdist_wheel': FakeBdistWheel},
...


Como dices, el paquete se instala correctamente, pero el mensaje de
error hace pensarse a la gente que ha habido un error, y me mandan
emails pidiéndome ayuda :(

Mi intención es que esto sea algo temporal, hasta que tenga paquetes
para las principales distribuciones. Pero claro, como es algo tedioso
y pesado, hasta ese momento prefiero dejarle el trabajo sucio al
gestor de paquetes de Python. Estoy barajando también la opción de
dividir el proceso de instalación en 2 pasos:

sudo pip install simple-monitor-alert && sudo python -m
simple_monitor_alert.install

Saludos, ¡y gracias!

El día 6 de junio de 2016, 6:41, Juan Luis Cano  escribió:
> En realidad, lo que ocurre es que se intenta construir un wheel por cada
> paquete que estás instalando y sus dependencias pero este paso falla por lo
> que has comentado. Sin embargo, a juzgar por el log todo se instala
> correctamente y en principio deberías poder importar el paquete con
> normalidad. De hecho acabo de probarlo y me funciona:
>
> $ pip install simple-monitor-alert
> # Mensaje de error al crear wheel, instalación exitosa
> $ python
>>>> import simple_monitor_alert
>>>> simple_monitor_alert.__version__
> '0.2.3'
>
> Lo que puedes hacer es sobreescribir el comando bdist_wheel para impedir su
> ejecución, mostrar un mensaje o simplemente no hacer nada.
>
> En principio los scripts de post-instalación dejarán de ser un hack cuando
> se termine la PEP 426:
>
> https://www.python.org/dev/peps/pep-0426/
>
> Mientras tanto, el consenso de la comunidad es que «lo estás haciendo mal».
>
> Espero que te sirva, un saludo:
>
> Juanlu
>
>
>
> On 2016-06-06 03:54, Nekmo wrote:
>>
>> Buenas a todos.
>>
>> Tengo un paquete que requiere de pasos adicionales para su instalación
>> en el sistema, ya que no es una biblioteca sino una aplicación. Entre
>> otras cosas hace:
>> - Instalar servicios (init, systemd).
>> - Actualizar los archivos de configuración, si se necesitase.
>> - Crear enlaces simbólicos.
>> - Crear un usuario del sistema si no existiese
>> - Dar los permisos correctos a los directorios correspondientes.
>>
>> Todo esto funciona muy bien a día de hoy, y me permite tener un
>> paquete instalable en cualquier distribución de forma fácil y
>> amigable. Además, si el paquete es instalado en modo usuario, estos
>> pasos se saltan mostrando una advertencia al usuario.
>>
>> El problema llega con Wheel: mis usuarios se quejan porque reciben un
>> mensaje de error de Wheel (el cual no uso) durante la instalación,
>> aunque el programa se instale perfectamente.
>>
>> https://github.com/Nekmo/simple-monitor-alert/issues/24
>>
>>
>> -
>>Checking .pth file support in build/bdist.linux-x86_64/wheel/
>>/usr/bin/python -E -c pass
>>TEST FAILED: build/bdist.linux-x86_64/wheel/ does NOT support .pth
>> files
>>error: bad install directory or PYTHONPATH
>>
>>You are attempting to install a package to a directory that is not
>>on PYTHONPATH and which Python does not read ".pth" files from.  The
>>installation directory you specified (via --install-dir, --prefix, or
>>the distutils default setting) was:
>>
>>build/bdist.linux-x86_64/wheel/
>>
>>and your PYTHONPATH environment variable currently contains:
>>
>>''
>>
>>Here are some of your options for correcting the problem:
>>
>>* You can choose a different installation directory, i.e., one that is
>>  on PYTHONPATH or supports .pth files
>>
>>* You can add the installation directory to the PYTHONPATH environment
>>  variable.  (It must then also be on PYTHONPATH whenever you run
>>  Python and want to use the package(s) you are installing.)
>>
>>* You can set up the installation directory to support ".pth" files by
>>  using one of the approaches described here:
>>
>>
>>
>> https://pythonhosted.org/setuptools/easy_install.html#custom-installation-locations
>>
>

Re: [Python-es] Post-install en setup.py con Wheel

2016-06-06 Por tema Nekmo
No te preocupes, sé perfectamente que está desaconsejado y soy
consciente de los riesgos y problemas :)

Según entiendo, lo que propones es hacer esto, ¿no?


class FakeBdistWheel(Command):
description = 'Faked Wheel'
user_options = []

def initialize_options(self):
pass

def finalize_options(self):
pass

def run(self):
print('Sorry, but wheel is not supported for this package!')


setup(
cmdclass={'install': SystemInstallCommand, 'bdist_wheel': FakeBdistWheel},
...


Como dices, el paquete se instala correctamente, pero el mensaje de
error hace pensarse a la gente que ha habido un error, y me mandan
emails pidiéndome ayuda :(

Mi intención es que esto sea algo temporal, hasta que tenga paquetes
para las principales distribuciones. Pero claro, como es algo tedioso
y pesado, hasta ese momento prefiero dejarle el trabajo sucio al
gestor de paquetes de Python. Estoy barajando también la opción de
dividir el proceso de instalación en 2 pasos:

sudo pip install simple-monitor-alert && sudo python -m
simple_monitor_alert.install

Saludos, ¡y gracias!


Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Google+: Nekmo Com


El día 6 de junio de 2016, 6:41, Juan Luis Cano  escribió:
> En realidad, lo que ocurre es que se intenta construir un wheel por cada
> paquete que estás instalando y sus dependencias pero este paso falla por lo
> que has comentado. Sin embargo, a juzgar por el log todo se instala
> correctamente y en principio deberías poder importar el paquete con
> normalidad. De hecho acabo de probarlo y me funciona:
>
> $ pip install simple-monitor-alert
> # Mensaje de error al crear wheel, instalación exitosa
> $ python
>>>> import simple_monitor_alert
>>>> simple_monitor_alert.__version__
> '0.2.3'
>
> Lo que puedes hacer es sobreescribir el comando bdist_wheel para impedir su
> ejecución, mostrar un mensaje o simplemente no hacer nada.
>
> En principio los scripts de post-instalación dejarán de ser un hack cuando
> se termine la PEP 426:
>
> https://www.python.org/dev/peps/pep-0426/
>
> Mientras tanto, el consenso de la comunidad es que «lo estás haciendo mal».
>
> Espero que te sirva, un saludo:
>
> Juanlu
>
>
>
> On 2016-06-06 03:54, Nekmo wrote:
>>
>> Buenas a todos.
>>
>> Tengo un paquete que requiere de pasos adicionales para su instalación
>> en el sistema, ya que no es una biblioteca sino una aplicación. Entre
>> otras cosas hace:
>> - Instalar servicios (init, systemd).
>> - Actualizar los archivos de configuración, si se necesitase.
>> - Crear enlaces simbólicos.
>> - Crear un usuario del sistema si no existiese
>> - Dar los permisos correctos a los directorios correspondientes.
>>
>> Todo esto funciona muy bien a día de hoy, y me permite tener un
>> paquete instalable en cualquier distribución de forma fácil y
>> amigable. Además, si el paquete es instalado en modo usuario, estos
>> pasos se saltan mostrando una advertencia al usuario.
>>
>> El problema llega con Wheel: mis usuarios se quejan porque reciben un
>> mensaje de error de Wheel (el cual no uso) durante la instalación,
>> aunque el programa se instale perfectamente.
>>
>> https://github.com/Nekmo/simple-monitor-alert/issues/24
>>
>>
>> -
>>Checking .pth file support in build/bdist.linux-x86_64/wheel/
>>/usr/bin/python -E -c pass
>>TEST FAILED: build/bdist.linux-x86_64/wheel/ does NOT support .pth
>> files
>>error: bad install directory or PYTHONPATH
>>
>>You are attempting to install a package to a directory that is not
>>on PYTHONPATH and which Python does not read ".pth" files from.  The
>>installation directory you specified (via --install-dir, --prefix, or
>>the distutils default setting) was:
>>
>>build/bdist.linux-x86_64/wheel/
>>
>>and your PYTHONPATH environment variable currently contains:
>>
>>''
>>
>>Here are some of your options for correcting the problem:
>>
>>* You can choose a different installation directory, i.e., one that is
>>  on PYTHONPATH or supports .pth files
>>
>>* You can add the installation directory to the PYTHONPATH environment
>>  variable.  (It must then also be on PYTHONPATH whenever you run
>>  Python and want to use the package(s) you are installing.)
>>
>>* You can set up the installation directory to support ".pth" files by
>> 

[Python-es] Post-install en setup.py con Wheel

2016-06-05 Por tema Nekmo
Buenas a todos.

Tengo un paquete que requiere de pasos adicionales para su instalación
en el sistema, ya que no es una biblioteca sino una aplicación. Entre
otras cosas hace:
- Instalar servicios (init, systemd).
- Actualizar los archivos de configuración, si se necesitase.
- Crear enlaces simbólicos.
- Crear un usuario del sistema si no existiese
- Dar los permisos correctos a los directorios correspondientes.

Todo esto funciona muy bien a día de hoy, y me permite tener un
paquete instalable en cualquier distribución de forma fácil y
amigable. Además, si el paquete es instalado en modo usuario, estos
pasos se saltan mostrando una advertencia al usuario.

El problema llega con Wheel: mis usuarios se quejan porque reciben un
mensaje de error de Wheel (el cual no uso) durante la instalación,
aunque el programa se instale perfectamente.

https://github.com/Nekmo/simple-monitor-alert/issues/24


-
  Checking .pth file support in build/bdist.linux-x86_64/wheel/
  /usr/bin/python -E -c pass
  TEST FAILED: build/bdist.linux-x86_64/wheel/ does NOT support .pth files
  error: bad install directory or PYTHONPATH

  You are attempting to install a package to a directory that is not
  on PYTHONPATH and which Python does not read ".pth" files from.  The
  installation directory you specified (via --install-dir, --prefix, or
  the distutils default setting) was:

  build/bdist.linux-x86_64/wheel/

  and your PYTHONPATH environment variable currently contains:

  ''

  Here are some of your options for correcting the problem:

  * You can choose a different installation directory, i.e., one that is
on PYTHONPATH or supports .pth files

  * You can add the installation directory to the PYTHONPATH environment
variable.  (It must then also be on PYTHONPATH whenever you run
Python and want to use the package(s) you are installing.)

  * You can set up the installation directory to support ".pth" files by
using one of the approaches described here:


https://pythonhosted.org/setuptools/easy_install.html#custom-installation-locations

  Please make the appropriate changes for your system and try again.
--

El problema es que, Wheel se promociona como una solución que
justamente impide ejecutar comandos durante la instalación
(¡bieen...!) y no sé si conseguiré solventar mi problema usando Wheel.
Tal vez lo que necesite es ocultar este mensaje de error.
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Orientación para el desarrollo de aplicaciones de escritorio

2016-01-12 Por tema Nekmo
De hacerlo yo, lo haría con Qt, Wx, o probaría Kivy, el cual ya propuse
antes.

Y no, no digo que utilizar Flask sea lo ideal, pero con la poca información
inicial, podría haber sido una opción tan digna como cualquier otra. Aquí
todo el mundo ha propuesto soluciones con la mejor de las intenciones, y
con la información que había, si el compañero hubiese tenido conocimientos
de desarrollo web, habría sido una buena opción.


Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Google+: Nekmo Com

El 13 de enero de 2016, 1:31, Mario Lacunza  escribió:

> Ya leiste los requerimientos q ha puesto el amigo Jesus? aún piensas q tu
> idea es buena?
>
> Antes q existieran las apps web estuvieron las desktop puras y aún siguen
> y su distribución no es mucho problema, 2 o 3 installers (y luego 1) tipo
> click click q tanto les gustan a los users windows y listo.
>
> Leyendo los requerimientos de Jesús insisto q tu solución no es adecuada.
>
> Saludos / Best regards
>
> Mario Lacunza
> Email:: mlacu...@gmail.com
> Personal Website:: http://www.lacunza.biz/
> Hosting:: http://mlv-host.com/
> Mascotas Perdidas:: http://mascotas-perdidas.com/
> Skype: mlacunzav
>
> Lima - Peru
>
> El 12 de enero de 2016, 19:11, Nekmo  escribió:
>
>>  @Mario Lacunza, Flask consume muy poquitos recursos, como 8-12MiB de
>> RAM, y aunque modesto, su servidor web se porta realmente bien si no
>> hablamos de grandes cantidades de usuarios.
>>
>> Si hablamos de desarrollar para un solo usuario, al ser una "aplicación
>> de escritorio", te sirve y te sobra.
>>
>> ¿En qué casos he usado yo Flask para propósitos como este?
>> 1. Un daemon en Python que requiere una interfaz de configuración. Al
>> tener una interfaz web, permite su fácil configuración desde otra máquina.
>> 2. Una aplicación de servidor que, al no poder contar con interfaz GUI
>> convencional, se ha desarrollado vía web.
>>
>> Son casos sencillos y que no requieren de algo grande, ni van a atender
>> muchas peticiones. Prefiero evitarme los problemas de una configuración
>> compleja si puedo tenerlo todo en uno. Y en el caso de una aplicación de
>> escritorio, es básico su facilidad de distribución.
>>
>> En ocasiones nos empeñamos en matar moscas a cañonazos, cuando una
>> solución así es mucho más simple, fácil de desarrollar, mantener, instalar,
>> y no requiere de múltiples servicios corriendo (Gunicorn + Nginx + ...).
>>
>>
>> Un cordial saludo:
>> -- Nekmo.
>>
>> Sitio web: http://nekmo.com
>> Dirección de contacto: conta...@nekmo.com
>> XMPP/Jabber: conta...@nekmo.com
>> Google+: Nekmo Com
>>
>> El 13 de enero de 2016, 0:50, Mario Lacunza 
>> escribió:
>>
>>> Vivo en el mismo mundo q tu, y no todo se debe o puede hacerse en web ya
>>> q todo depende de los requerimientos para modelar una solución ofimática.
>>> En este caso el amigo sólo pidió "aplicación de escritorio" sin más. Por
>>> eso muchos entendemos una app tradicional no web, claro q ahora el modelo
>>> web también es posible como mencionan.
>>>
>>> Sin embargo al amigo q le contesté x su solución en la q el mismo se
>>> contradice sobre su eficiencia y modelado, agregando mas librerías a cada
>>> respuesta (lo cual sabemos q significa) no era algo óptimo.
>>>
>>> Y recuerda q no TODO es web sino sistemas como SAP y un largo etc no
>>> existirían y M$ (léase Microsoft) no seguiría dando soporte a lenguajes de
>>> programación que puedan crear sistemas desktop tradicionales y sus
>>> librerías de controles, dlls, etc.
>>>
>>> Y en el mundo donde vivimos no todos pueden comprarse un CoreI7 + 16GB
>>> de RAM con lo último, tengo muchos q aun tienen PCs viejas Core2Duo y una
>>> de ellas funge de servidor de datos y creo q es la realidad de muchos
>>> países.
>>>
>>> Escalabilidad: eso depende de COMO diseñes tu sistema y nada más.
>>>
>>> En web es mejor la instalación de upgrades ya q no tienes q ir de
>>> cliente en cliente instalando los exe, deb o bin nuevos, sólo haces el
>>> deploy en el server y listo.
>>>
>>> Al final la solución que se ofrezca se dará según requerimientos y con
>>> lo q tenga el user de fierro, lo q recomendé es lo más sencillo de instalar
>>> y usar para una app desktop tradicional, punto el resto son gustos y sobre
>>> eso no han escrito los autores.
>>>
>>> Saludos / Best regards
>>>
>>> Mario Lacunza
>>> Em

Re: [Python-es] Orientación para el desarrollo de aplicaciones de escritorio

2016-01-12 Por tema Nekmo
 @Mario Lacunza, Flask consume muy poquitos recursos, como 8-12MiB de RAM,
y aunque modesto, su servidor web se porta realmente bien si no hablamos de
grandes cantidades de usuarios.

Si hablamos de desarrollar para un solo usuario, al ser una "aplicación de
escritorio", te sirve y te sobra.

¿En qué casos he usado yo Flask para propósitos como este?
1. Un daemon en Python que requiere una interfaz de configuración. Al tener
una interfaz web, permite su fácil configuración desde otra máquina.
2. Una aplicación de servidor que, al no poder contar con interfaz GUI
convencional, se ha desarrollado vía web.

Son casos sencillos y que no requieren de algo grande, ni van a atender
muchas peticiones. Prefiero evitarme los problemas de una configuración
compleja si puedo tenerlo todo en uno. Y en el caso de una aplicación de
escritorio, es básico su facilidad de distribución.

En ocasiones nos empeñamos en matar moscas a cañonazos, cuando una solución
así es mucho más simple, fácil de desarrollar, mantener, instalar, y no
requiere de múltiples servicios corriendo (Gunicorn + Nginx + ...).


Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Google+: Nekmo Com

El 13 de enero de 2016, 0:50, Mario Lacunza  escribió:

> Vivo en el mismo mundo q tu, y no todo se debe o puede hacerse en web ya q
> todo depende de los requerimientos para modelar una solución ofimática. En
> este caso el amigo sólo pidió "aplicación de escritorio" sin más. Por eso
> muchos entendemos una app tradicional no web, claro q ahora el modelo web
> también es posible como mencionan.
>
> Sin embargo al amigo q le contesté x su solución en la q el mismo se
> contradice sobre su eficiencia y modelado, agregando mas librerías a cada
> respuesta (lo cual sabemos q significa) no era algo óptimo.
>
> Y recuerda q no TODO es web sino sistemas como SAP y un largo etc no
> existirían y M$ (léase Microsoft) no seguiría dando soporte a lenguajes de
> programación que puedan crear sistemas desktop tradicionales y sus
> librerías de controles, dlls, etc.
>
> Y en el mundo donde vivimos no todos pueden comprarse un CoreI7 + 16GB de
> RAM con lo último, tengo muchos q aun tienen PCs viejas Core2Duo y una de
> ellas funge de servidor de datos y creo q es la realidad de muchos países.
>
> Escalabilidad: eso depende de COMO diseñes tu sistema y nada más.
>
> En web es mejor la instalación de upgrades ya q no tienes q ir de cliente
> en cliente instalando los exe, deb o bin nuevos, sólo haces el deploy en el
> server y listo.
>
> Al final la solución que se ofrezca se dará según requerimientos y con lo
> q tenga el user de fierro, lo q recomendé es lo más sencillo de instalar y
> usar para una app desktop tradicional, punto el resto son gustos y sobre
> eso no han escrito los autores.
>
> Saludos / Best regards
>
> Mario Lacunza
> Email:: mlacu...@gmail.com
> Personal Website:: http://www.lacunza.biz/
> Hosting:: http://mlv-host.com/
> Mascotas Perdidas:: http://mascotas-perdidas.com/
> Skype: mlacunzav
>
> Lima - Peru
>
> El 12 de enero de 2016, 17:30, Mario R. Osorio 
> escribió:
>
>>
>>  @Mario Lacunza
>>
>> Mario,
>> Con el debido respeto, cuando dices que
>>
>>
>>> "*La verdad lo q recomiendas es un Frankenstein de solución*"
>>
>>
>> Me haces pensar que  quizás vivas en otro mundo.
>>
>> La tendencia hoy día es hacer TODAS las aplicaciones para la web. Esto
>> ofrece, entre muchas otras, la ventaja de que cualquier usuario con un
>> navegador la puede utilizar.
>> Por supuesto, en el otro lado tiene que haber al menos un servidor web y
>> otro de bases de datos, pero como explico alguien anteriormente, existen
>> varios servidores web y sistemas de bases de datos relacionales, no
>> relacionales, sql, nosql; que puedes escoger, según la carga que tu
>> aplicación va a tener. Existen opciones para todo y lo mejpr es que tanto
>> los servidores web como de bases de datos de hoy día pueden convivir
>> prácticamente en cualquier computador de los que se fabrican hoy día
>> absolutamente sin ningún problema.
>>
>> Incluso, aun si la aplicación es mono usuario, hacerla web te da la
>> ventaja de la posibilidad de escalarla y adaptarla a cualquier necesidad.
>>
>> Por otro lado, estamos hablando de python. Tu puedes usar cualquier
>> combinación de tecnologías y lenguajes de programación, etc. que quieras
>> pero, aunque también lo puedes usar en tu aplicación, NO NECESITAS PHP.
>>
>>
>> Dtb/Gby
>> ===s
>> Mario R. Osorio
>> A.S. of Computer Programming and Analysis
>>
>> “If I had asked people

Re: [Python-es] Orientación para el desarrollo de aplicaciones de escritorio

2016-01-12 Por tema Nekmo
Flask puede servir el proyecto con los archivos estáticos incluidos, y
además está preparado para múltiples peticiones (multithread). Es un
servidor web Python a fin y al cabo. No es tan óptimo como correrlo
con un gunicorn + nginx/lighttpd/loquesea para los estáticos pero, ¿y
qué más da? Sólo tienes un único usuario.

Con Django necesitas obligatoriamente otro servidor que lo sirva
usando WSGI u otra tecnología. El servidor incluido para pruebas
(runserver) está demasiado limitado.

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Google+: Nekmo Com


El día 12 de enero de 2016, 20:53, Mario Lacunza  escribió:
> Disculpa y como haces una app "web de escritorio" sin una parte servidor
> donde corra (php, python, java o el lenguaje servidor usado) toda la lógica
> basado ya sea en LAMP o Nginx?
>
> Xq tener parte de la lógica del cliente en el desktop pues rompe el concepto
> de app web donde todo reside en el servidor, por eso sólo se necesita un
> browser para usarla sin tener q instalar NADA del lado cliente, creo q andan
> confundidos con los conceptos centrales y el cómo desplegar la app.
>
> Saludos / Best regards
>
> Mario Lacunza
> Email:: mlacu...@gmail.com
> Personal Website:: http://www.lacunza.biz/
> Hosting:: http://mlv-host.com/
> Mascotas Perdidas:: http://mascotas-perdidas.com/
> Skype: mlacunzav
>
> Lima - Peru
>
> El 12 de enero de 2016, 14:38, Nekmo  escribió:
>>
>> Yo para una aplicación de escritorio usando tecnología web, no
>> utilizaría Django por diversos motivos:
>>
>> 1º. Porque Django es bastante grande.
>> 2º. Porque donde destaca es en lado del servidor, y una aplicación de
>> este tipo requerirá sobre todo de lógica en el lado del cliente.
>> 3º. Django está pensado para correr tras un servidor web como Nginx, y
>> aunque es posible usar un servidor web en Python, le estás añadiendo
>> una mayor complicación.
>> 4º. En Django se trabaja por proyectos, siendo un proyecto una web.
>> Ello dificulta su distribución como aplicación de escritorio.
>>
>> Y ojo, no lo digo porque no me guste Django. Lo utilizo todos los días
>> y me dedico profesionalmente a ello. Sólo digo que Django, aunque
>> puede utilizarse para correr una aplicación destinada a cliente de
>> escritorio, no es lo más óptimo ni cómodo, porque no fue diseñado para
>> ello. En su lugar, recomendaría Flask u otro miniframework parecido.
>>
>> Un cordial saludo:
>> -- Nekmo.
>>
>> Sitio web: http://nekmo.com
>> Dirección de contacto: conta...@nekmo.com
>> XMPP/Jabber: conta...@nekmo.com
>> Google+: Nekmo Com
>>
>>
>> El día 12 de enero de 2016, 20:28, Mario Lacunza 
>> escribió:
>> > Pues escoger el motor de base de datos no tiene nada q ver con q sea
>> > desktop
>> > o web, sino va en función de la cantidad de información q tiene q
>> > almacenar,
>> > si va montada en red y permite múltiples usuarios (sqlite no) y accesos
>> > con
>> > concultas recurrentes, punteros, inserciones y un largo ETC..
>> >
>> > Saludos / Best regards
>> >
>> > Mario Lacunza
>> > Email:: mlacu...@gmail.com
>> > Personal Website:: http://www.lacunza.biz/
>> > Hosting:: http://mlv-host.com/
>> > Mascotas Perdidas:: http://mascotas-perdidas.com/
>> > Skype: mlacunzav
>> >
>> > Lima - Peru
>> >
>> > El 12 de enero de 2016, 14:25, Kiko  escribió:
>> >>
>> >> BTW, si es una aplicación de escritorio porqué irías con postgresql y
>> >> no con algo más simple con sqlite?
>> >>
>> >> El 12/1/16, Nicolas lino  escribió:
>> >> > Kivy++
>> >> >
>> >> > El 12 de enero de 2016, 16:11, Nekmo  escribió:
>> >> >
>> >> >> No he probado Kivy, pero tiene buena pinta.
>> >> >>
>> >> >> https://kivy.org/
>> >> >>
>> >> >> Un cordial saludo:
>> >> >> -- Nekmo.
>> >> >>
>> >> >> Sitio web: http://nekmo.com
>> >> >> Dirección de contacto: conta...@nekmo.com
>> >> >> XMPP/Jabber: conta...@nekmo.com
>> >> >> Google+: Nekmo Com
>> >> >>
>> >> >>
>> >> >> El día 12 de enero de 2016, 19:33, Mario Lacunza
>> >> >> 
>> >> >> escribió:
>> >> >> > Creo q pidió app de escritorio y no web...xq para el caso también
>> >> &

Re: [Python-es] Orientación para el desarrollo de aplicaciones de escritorio

2016-01-12 Por tema Nekmo
Yo para una aplicación de escritorio usando tecnología web, no
utilizaría Django por diversos motivos:

1º. Porque Django es bastante grande.
2º. Porque donde destaca es en lado del servidor, y una aplicación de
este tipo requerirá sobre todo de lógica en el lado del cliente.
3º. Django está pensado para correr tras un servidor web como Nginx, y
aunque es posible usar un servidor web en Python, le estás añadiendo
una mayor complicación.
4º. En Django se trabaja por proyectos, siendo un proyecto una web.
Ello dificulta su distribución como aplicación de escritorio.

Y ojo, no lo digo porque no me guste Django. Lo utilizo todos los días
y me dedico profesionalmente a ello. Sólo digo que Django, aunque
puede utilizarse para correr una aplicación destinada a cliente de
escritorio, no es lo más óptimo ni cómodo, porque no fue diseñado para
ello. En su lugar, recomendaría Flask u otro miniframework parecido.

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Google+: Nekmo Com


El día 12 de enero de 2016, 20:28, Mario Lacunza  escribió:
> Pues escoger el motor de base de datos no tiene nada q ver con q sea desktop
> o web, sino va en función de la cantidad de información q tiene q almacenar,
> si va montada en red y permite múltiples usuarios (sqlite no) y accesos con
> concultas recurrentes, punteros, inserciones y un largo ETC..
>
> Saludos / Best regards
>
> Mario Lacunza
> Email:: mlacu...@gmail.com
> Personal Website:: http://www.lacunza.biz/
> Hosting:: http://mlv-host.com/
> Mascotas Perdidas:: http://mascotas-perdidas.com/
> Skype: mlacunzav
>
> Lima - Peru
>
> El 12 de enero de 2016, 14:25, Kiko  escribió:
>>
>> BTW, si es una aplicación de escritorio porqué irías con postgresql y
>> no con algo más simple con sqlite?
>>
>> El 12/1/16, Nicolas lino  escribió:
>> > Kivy++
>> >
>> > El 12 de enero de 2016, 16:11, Nekmo  escribió:
>> >
>> >> No he probado Kivy, pero tiene buena pinta.
>> >>
>> >> https://kivy.org/
>> >>
>> >> Un cordial saludo:
>> >> -- Nekmo.
>> >>
>> >> Sitio web: http://nekmo.com
>> >> Dirección de contacto: conta...@nekmo.com
>> >> XMPP/Jabber: conta...@nekmo.com
>> >> Google+: Nekmo Com
>> >>
>> >>
>> >> El día 12 de enero de 2016, 19:33, Mario Lacunza 
>> >> escribió:
>> >> > Creo q pidió app de escritorio y no web...xq para el caso también
>> >> > puede
>> >> usar
>> >> > Django.
>> >> >
>> >> > Saludos / Best regards
>> >> >
>> >> > Mario Lacunza
>> >> > Email:: mlacu...@gmail.com
>> >> > Personal Website:: http://www.lacunza.biz/
>> >> > Hosting:: http://mlv-host.com/
>> >> > Mascotas Perdidas:: http://mascotas-perdidas.com/
>> >> > Skype: mlacunzav
>> >> >
>> >> > Lima - Peru
>> >> >
>> >> > El 12 de enero de 2016, 13:25, Kiko 
>> >> > escribió:
>> >> >>
>> >> >>
>> >> >> El 12 de enero de 2016, 18:38, Jesús Quintero Suárez
>> >> >> > >> >
>> >> >> escribió:
>> >> >>>
>> >> >>> Kiko, si entiendo bien, con flask puedo desarrollar aplicaciones
>> >> >>> que
>> >> >>> corren como de escritorio!, como sería eso?.
>> >> >>
>> >> >>
>> >> >> Con flask puedes crer una aplicación web que puedes embeber dentro
>> >> >> de
>> >> >> un
>> >> >> QWebView (PyQT), por ejemplo.
>> >> >>
>> >> >> O, directamente, puedes correrlo en un navegador y no depender de
>> >> >> PyQT,
>> >> >> Wx, GTK/PyGObject,... Dependerás de otras cosas.
>> >> >>
>> >> >> Pero es solo una sugerencia. Depende de lo que necesites hacer.
>> >> >>
>> >> >> Un ejemplo mínimo de lo primero copiado/adaptado de aquí
>> >> >> (http://codereview.stackexchange.com/a/114307):
>> >> >>
>> >> >> #Testedo en Python3.5
>> >> >>
>> >> >> import sys
>> >> >>
>> >> >> from PyQt4.QtCore import QThread, QUrl
>> >> >> from PyQt4.QtGui import QApplication
>> >> >> from PyQt4.QtWebKit import QWebView
>> >&

Re: [Python-es] Orientación para el desarrollo de aplicaciones de escritorio

2016-01-12 Por tema Nekmo
No he probado Kivy, pero tiene buena pinta.

https://kivy.org/

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Google+: Nekmo Com


El día 12 de enero de 2016, 19:33, Mario Lacunza  escribió:
> Creo q pidió app de escritorio y no web...xq para el caso también puede usar
> Django.
>
> Saludos / Best regards
>
> Mario Lacunza
> Email:: mlacu...@gmail.com
> Personal Website:: http://www.lacunza.biz/
> Hosting:: http://mlv-host.com/
> Mascotas Perdidas:: http://mascotas-perdidas.com/
> Skype: mlacunzav
>
> Lima - Peru
>
> El 12 de enero de 2016, 13:25, Kiko  escribió:
>>
>>
>> El 12 de enero de 2016, 18:38, Jesús Quintero Suárez 
>> escribió:
>>>
>>> Kiko, si entiendo bien, con flask puedo desarrollar aplicaciones que
>>> corren como de escritorio!, como sería eso?.
>>
>>
>> Con flask puedes crer una aplicación web que puedes embeber dentro de un
>> QWebView (PyQT), por ejemplo.
>>
>> O, directamente, puedes correrlo en un navegador y no depender de PyQT,
>> Wx, GTK/PyGObject,... Dependerás de otras cosas.
>>
>> Pero es solo una sugerencia. Depende de lo que necesites hacer.
>>
>> Un ejemplo mínimo de lo primero copiado/adaptado de aquí
>> (http://codereview.stackexchange.com/a/114307):
>>
>> #Testedo en Python3.5
>>
>> import sys
>>
>> from PyQt4.QtCore import QThread, QUrl
>> from PyQt4.QtGui import QApplication
>> from PyQt4.QtWebKit import QWebView
>> from flask import Flask
>>
>> PORT = 5000
>> ROOT_URL = 'http://localhost:{}'.format(PORT)
>>
>>
>> class FlaskThread(QThread):
>> def __init__(self, application):
>> QThread.__init__(self)
>> self.application = application
>>
>> def __del__(self):
>> self.wait()
>>
>> def run(self):
>> self.application.run(port=PORT)
>>
>>
>> def provide_GUI_for(application):
>> qtapp = QApplication(sys.argv)
>>
>> webapp = FlaskThread(application)
>> webapp.start()
>>
>> qtapp.aboutToQuit.connect(webapp.terminate)
>>
>> webview = QWebView()
>> webview.load(QUrl(ROOT_URL))
>> webview.show()
>>
>> return qtapp.exec_()
>>
>>
>> if __name__ == '__main__':
>> app = Flask(__name__)
>>
>> @app.route('/')
>> def index():
>> return "Hola Mundo!!"
>>
>> sys.exit(provide_GUI_for(app))
>>
>>>
>>>
>>>
>>> De: Python-es [mailto:python-es-bounces+jesusquin=msn@python.org] En
>>> nombre de Kiko
>>> Enviado el: martes, 12 de enero de 2016 10:50 a. m.
>>> Para: La lista de python en castellano 
>>> Asunto: Re: [Python-es] Orientación para el desarrollo de aplicaciones de
>>> escritorio
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> El 12 de enero de 2016, 16:34, Jesús Quintero Suárez 
>>> escribió:
>>>
>>> Hola todos, he leído de todo un poco pero realmente no es suficiente como
>>> para elegir la combinación de paquetes más adecuada, quiero desarrollar si
>>> es posible con una de las versiones más recientes de python y con la base de
>>> datos postgresql.
>>>
>>> ¿Cuál es ORM el más adecuado?
>>>
>>> ¿Para GUIs que me recomiendan, y si es posible una herramienta RAD?
>>>
>>>
>>>
>>> Agradezco la colaboración que me puedan brindar, gracias.
>>>
>>>
>>>
>>>
>>>
>>> Approach clásico:
>>>   - ORM: SQLAlchemy
>>>
>>>   - GUI/RAD: PyQT/QtDesigner
>>>
>>> Aunque depende para qué iría con bootstrap+flask+sqlalchemy
>>>   - Look & Feel sería similar en las diferentes plataformas.
>>>   - no hay problemas de compilar las librerías gráficas, que puede ser un
>>> poco doloroso en algún caso y algún SO.
>>>
>>>   - Gran parte del desarrollo te vale para tener una app online, si es
>>> necesario.
>>>
>>>   - Aprendes desarrollo web :-P
>>>   -  ...
>>>
>>>
>>>
>>> Saludos.
>>>
>>>
>>>
>>>
>>>
>>>
>>> ___
>>> Python-es mailing list
>>> Python-es@python.org
>>> https://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>>
>>>
>>>
>>> ___
>>> Python-es mailing list
>>> Python-es@python.org
>>> https://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>
>>
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Tutorial pytnon curses

2015-08-31 Por tema Nekmo
Virtualenvwrapper.

Te facilita el trabajo con Virtualenv :P

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Google+: Nekmo Com


El día 1 de septiembre de 2015, 1:05, Carlos Zuniga
 escribió:
> 2015-08-31 17:25 GMT-05:00 RadicalEd :
>> La vaina es que no quiero instalar librerias extras porque sería para una
>> aplicación en la empresa y no puedo meterle tanto la mano a los servidores
>>
>
> virtualenv
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] ¿Código de python que merece ser estudiado?

2015-08-02 Por tema Nekmo
El código de Django es bastante claro, fácil de entender y
documentado, además de aprovechar ciertas características del lenguaje
que lo hace merecedor de su estudio para aprender.

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Google+: Nekmo Com


El día 3 de agosto de 2015, 5:01, AGTUGO  escribió:
> Les pido compartir aquel proyecto donde hayan visto un código python que
> merece la pena ser estudiado:
>
> -Por su belleza, simplicidad.
> -Por el conocimiento que adquieres después de estudiarlo.
> -Por lo bien comentado que esta.
>
>
> Saludos.
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Instalar datos con setup.py

2015-05-12 Por tema Nekmo
Según he entendido, quieres crear directorios/archivos de
configuración con el instalador.

Bien, para mí, eso es una mala idea, porque todo lo que se encuentra
en la HOME, es susceptible de ser borrado (para reiniciar la
configuración), además de que limita tu programa a los usuarios que
hubiesen cuando se instaló el programa.

Lo más normal, sería que se comprobase que dicho directorio/archivo
existe con cada inicio del programa, y si no existen crearlos.

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Google+: Nekmo Com


El día 12 de mayo de 2015, 13:15, Ezequiel  escribió:
> Hola!
>
> Para instalar de manera local (por defecto utiliza el directorio
> ~/.local/lib/pythonX.Y/) podés hacer:
>
> python setup.py install --user
>
> Para más información:
>
> python setup.py -h
>
> Saludos!
> Saludos!
>
> El may 12, 2015 7:44 AM, "Marcos Chavarría Teijeiro"
>  escribió:
>>
>> Hola!
>>
>> Estoy construyendo un programa para analizar los resultados de una
>> batería de tests (en concreto de WebKitGTK). Esta batería de test
>> proporciona un fichero json por cada ejecución. Mi programa debe
>> guardar estos ficheros en un directorio para analizarlos
>> posteriormente y conseguir, por ejemplo, desde cuando un test está
>> fallando. Para agilizar el inicio del trabajo el programa guarda en
>> propio repositorio una gran cantidad de estos resultados de forma que
>> el usuario no tenga que descargarlos todos al inicio solo los nuevos.
>>
>> Me gustaría copiar dichos ficheros a otro directorio del sistema en
>> concreto "~/.jsonresults" usando el script de instalación. He
>> intentado usar la keyword data_files sin demasiado éxito. El problema
>> es que para instalar el programa se tiene que ejecutar como sudo por
>> lo que en vez de instalarlos en mi home lo hace en el de root.
>>
>> Seguro que es un "problema" recurrente y probablemente bastante
>> trivial pero no se me ha ocurrido ninguna solución :(.
>>
>> Alguna idea??
>>
>> Un saludo,
>> Marcos Chavarría.
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Problema con campo fecha en Django..Urgente

2015-02-11 Por tema Nekmo
El día 11 de febrero de 2015, 23:11, Abel Muñoz  escribió:
> Exception Value:  'module' object has no attribute 'day_abbr'


Buscando por "Exception Value:  'module' object has no attribute
'day_abbr' " en Google, el primer resultado es:
https://code.djangoproject.com/ticket/13872

Moraleja: corre tu proyecto a ser posible en un entorno unix.

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo
Google+: Nekmo Com
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Fwd: Queda inaugurada la lista Python España

2012-11-27 Por tema Nekmo
Si hay más gente por Málaga y queréis salir a tomar unas birras, aquí
tenéis a un servidor o/

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo
Google+: Nekmo Com


El día 26 de noviembre de 2012 22:45, Juan Luis Cano Rodríguez
 escribió:
> -- Forwarded message --
> From: Juan Luis Cano 
> Date: 2012/11/26
> Subject: Queda inaugurada la lista Python España
> To: python-sp...@googlegroups.com
>
>
> Hola a todos, este es el primer mensaje de la lista Python España. Yo soy
> Juan Luis Cano (dando la vara en @Pybonacci), soy estudiante de Ingeniería
> Aeronáutica en Madrid (actualmente residiendo en Milán) y espero que esto
> sea el comienzo de algo grande :)
>
> Propongo que utilicemos esta lista para hablar sobre reuniones de grupos
> locales para saber qué hace otra gente en otras partes de España, organizar
> la PyConES (que es la empresa importante que tenemos entre manos) y
> cualquier cosa que consideréis de interés para los demás (aunque para dudas
> sobre código mejor usar Python Hispano o Python Majibu).
>
> Un saludo a todos,
>
> Juan Luis Cano
>
> --
>
>
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Lanzamiento del Proyecto Sboty

2012-07-17 Por tema Nekmo
Probé con Sphinx en su momento, pero los resultados eran totalmente
aleatorios. En mi caso, la idea era reconocer la palabra dicha en un
conjunto limitado de palabras, lo cual "lograba" limitando el
diccionario a dichas palabras. Pero los resultados no eran buenos.
Pero claro, hablo de hace años, tal vez lo hayan solucionado :)

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo
Google+: Nekmo Com


El día 17 de julio de 2012 02:06, Alfonso de la Guarda
 escribió:
> Hola,
>
> Estamos trabajando con 
> http://cmusphinx.sourceforge.net/sphinx4/#what_is_sphinx4
>
>
> Saludos,
>
> 
> Alfonso de la Guarda
> Twitter: @alfonsodg
> Redes sociales: alfonsodg
>Telef. 991935157
> 1024D/B23B24A4
> 5469 ED92 75A3 BBDB FD6B  58A5 54A1 851D B23B 24A4
>
>
> 2012/7/16 Nekmo :
>> ¿qué habéis usado para el STT? Investigué hace tiempo sobre el tema,
>> pero en español los bancos de voz estaban muy verdes...
>>
>> Un cordial saludo:
>> -- Nekmo.
>>
>> Sitio web: http://nekmo.com
>> Dirección de contacto: conta...@nekmo.com
>> XMPP/Jabber: conta...@nekmo.com
>> Identi.ca: http://identi.ca/nekmo
>> Diaspora: Nekmo
>> Google+: Nekmo Com
>>
>>
>> El día 16 de julio de 2012 17:32, Alfonso de la Guarda
>>  escribió:
>>> Hola,
>>>
>>> Luego de varias coordinaciones con diversas organizaciones e
>>> instituciones, lanzamos el proyecto SBOTY, robot de mensajería con
>>> soporte de inteligencia artificial mediante AIML.  Las versiones de
>>> las organizaciones gubernamentales que han "mejorado" el proyecto
>>> incluyen soporte de webservices y próximamente voz a texto (para, por
>>> ejemplo, emplearlo en una central telefónica), aunque esto estará
>>> sujeto a los tiempos en que los equipos de desarrollo de dichas
>>> instituciones decidan publicarlo (lo que deben hacer puesto que la
>>> licencia es la GPL v3).
>>>
>>> La solución es el core de diversas versiones que aparecerán en breve,
>>> específicamente para atención al ciudadano, seguridad social y salud.
>>> Pueden adaptarlo, también, para soporte de otros servicios
>>> (actualmente brinda soporte google talk / google apps / msn
>>> messenger-live) debido a que integra xmpp como protocolo de
>>> comunicaciones
>>>
>>> Pueden acceder al código fuente y customizarlo para sus necesidades
>>> empresariales, gubernamentales o sin fines de lucro en:
>>>
>>> https://github.com/alfonsodg/sboty
>>> https://bitbucket.org/alfonsodg/sboty/
>>>
>>> Adicionalmente, pueden acceder al demo agregando: d...@ictec.biz a sus
>>> clientes de mensajería, comienzen a preguntarle y él les responderá.
>>>
>>> El producto ya está en producción más de un año, así que no debería
>>> haber problema con su funcionamiento, actualmente estamos trabajando
>>> para integrar voz/texto/voz de tal manera que automatiza los servicios
>>> telefónicos, quioscos, cajeros, etc.
>>>
>>>
>>>
>>>
>>> Saludos,
>>>
>>> 
>>> Alfonso de la Guarda
>>> Twitter: @alfonsodg
>>> Redes sociales: alfonsodg
>>>Telef. 991935157
>>> 1024D/B23B24A4
>>> 5469 ED92 75A3 BBDB FD6B  58A5 54A1 851D B23B 24A4
>>> ___
>>> Python-es mailing list
>>> Python-es@python.org
>>> http://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Lanzamiento del Proyecto Sboty

2012-07-16 Por tema Nekmo
¿qué habéis usado para el STT? Investigué hace tiempo sobre el tema,
pero en español los bancos de voz estaban muy verdes...

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo
Google+: Nekmo Com


El día 16 de julio de 2012 17:32, Alfonso de la Guarda
 escribió:
> Hola,
>
> Luego de varias coordinaciones con diversas organizaciones e
> instituciones, lanzamos el proyecto SBOTY, robot de mensajería con
> soporte de inteligencia artificial mediante AIML.  Las versiones de
> las organizaciones gubernamentales que han "mejorado" el proyecto
> incluyen soporte de webservices y próximamente voz a texto (para, por
> ejemplo, emplearlo en una central telefónica), aunque esto estará
> sujeto a los tiempos en que los equipos de desarrollo de dichas
> instituciones decidan publicarlo (lo que deben hacer puesto que la
> licencia es la GPL v3).
>
> La solución es el core de diversas versiones que aparecerán en breve,
> específicamente para atención al ciudadano, seguridad social y salud.
> Pueden adaptarlo, también, para soporte de otros servicios
> (actualmente brinda soporte google talk / google apps / msn
> messenger-live) debido a que integra xmpp como protocolo de
> comunicaciones
>
> Pueden acceder al código fuente y customizarlo para sus necesidades
> empresariales, gubernamentales o sin fines de lucro en:
>
> https://github.com/alfonsodg/sboty
> https://bitbucket.org/alfonsodg/sboty/
>
> Adicionalmente, pueden acceder al demo agregando: d...@ictec.biz a sus
> clientes de mensajería, comienzen a preguntarle y él les responderá.
>
> El producto ya está en producción más de un año, así que no debería
> haber problema con su funcionamiento, actualmente estamos trabajando
> para integrar voz/texto/voz de tal manera que automatiza los servicios
> telefónicos, quioscos, cajeros, etc.
>
>
>
>
> Saludos,
>
> 
> Alfonso de la Guarda
> Twitter: @alfonsodg
> Redes sociales: alfonsodg
>Telef. 991935157
> 1024D/B23B24A4
> 5469 ED92 75A3 BBDB FD6B  58A5 54A1 851D B23B 24A4
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Recorrer fichero XML con Python

2011-12-20 Por tema Nekmo
Amara no lo conocía, yo el que uso es lxml, que además es compatible
con Python3 (el cual uso mucho).

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo
Google+: Nekmo Com



El día 20 de diciembre de 2011 07:15, Luis Miguel Morillas
 escribió:
> El 19 de diciembre de 2011 21:56, Carlos Maykel López González
>  escribió:
>>
>> Hola a todos:
>> Les escribo pues me encargaron una aplicación con Python + QT4 y como 
>> soporte para los datos XML. la aplicación es para consultar los datos que 
>> están en el fichero XML. y leido y visto un sin numero de ejemplos pero no 
>> logro concretar la idea de como realizar esta consulta al fichero. aquí les 
>> envió un fragmento de mi xml.
>>
>
> Necesitas un parser de xml [1]  Yo uso Amara [2] por su eficiencia y
> porque genera una estructura de objetos python a partir de un doc xml.
> Según lo que tengas que hacer (extracción de datos, validación,
> proceso xslt, ...) tendrás que elegir uno u otro.
>
>
> [1] http://wiki.python.org/moin/PythonXml
> [2] http://wiki.xml3k.org/Amara
>
>
> -- lm
>
>
>
>> 
>>   33
>>   12
>>   1212
>>   R5
>>   662
>>   PT
>>   A
>>   12100053785
>>   
>>   1662CDEDSI
>>   Maria Perez Perez
>>   
>>   A
>>   CUP
>>   6.25
>>   15.45
>>   0.00
>>   0.00
>>   0.00
>>   0.00
>>   0.00
>>   21.70
>>   
>>   21.70
>>  
>>  
>>   33
>>   12
>>   1212
>>   R5
>>   662
>>   PT
>>   A
>>   1200111004550
>>   492175
>>   16DD2CD0FY1
>>   Roberto Lopez Regueiro
>>   
>>   A
>>   CUP
>>   7.25
>>   5.85
>>   0.00
>>   0.00
>>   8.00
>>   0.00
>>   0.00
>>   21.10
>>   
>>   21.10
>>  
>> --
>>
>> ---
>> This message was processed by Kaspersky Mail Gateway 5.6.28/RELEASE running 
>> at host imx3.etecsa.cu
>> Visit our web-site: <http://www.kaspersky.com>, <http://www.viruslist.com>
>>
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Deshabilitir "directory listing" en el servidor web SimpleHTTPServer

2011-10-14 Por tema Nekmo
Xacto :)

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo
Google+: Nekmo Com



El día 15 de octubre de 2011 00:46, gerardo Juarez
 escribió:
> Para el uso futuro, me parece recordar que hay un HTTPServer que no es
> "Simple" y que puedes incluir un mix-in con ThreadingServer o ForkingServer,
> según necesites, con lo que tu servidor es capaz de hacer multiprocesos.
>
> Jose Caballero wrote:
>>
>> Hola de nuevo,
>>
>>
>> al final lo resolvi sobreescribiendo el metodo list_directory().
>>
>> La opcion de incluir un index.html no es eficiente en mi caso, porque se
>> trata de un arbol de subdirectorios que se crean y destruyen con cierta
>> frecuencia. Y no quiero tener un segundo proceso que este constantemente
>> buscando todos los nuevos subdirectorios para crear un index.html en cada
>> uno de ellos. Pero gracias por la sugerencia.
>>
>> Tomo nota del comentario sobre no multi-thread. En principio no es un
>> problema, pero no se en el futuro. Gracias por la advertencia.
>>
>>
>> Saludos,
>> Jose
>> 
>>
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Deshabilitir "directory listing" en el servidor web SimpleHTTPServer

2011-10-13 Por tema Nekmo
¿por qué no iba a ser una buena solución? No obstante, te aviso de que
SimpleHTTPServer no es multi-thread, sólo es útil para tests o
compartir algo con otra máquina.

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo
Google+: Nekmo Com



El día 14 de octubre de 2011 01:08, Jose Caballero
 escribió:
>
> Hola,
>
>
> Estoy intentando averiguar como eliminar el listado automático de directorios 
> cuando no hay un index.htm[l] en el servidor web de python.
> La documentación dice que en ese caso se hace una llamada a list_directory(), 
> pero no encuentro ese método en la lista de la web oficial.
> Había pensado en heredar SimpleHTTPServer y sobreescribir list_server() para 
> que no haga nada.
> ¿sabe alguien de una idea mejor?
>
>
> Muchas gracias,
> Jose
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Reunion Jueves 15 de Septiembre python-madrid

2011-09-26 Por tema Nekmo
Yo no podré ir porque me queda muy lejos... pero suerte con la reunión ;-)

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo
Google+: Nekmo Com



El día 13 de septiembre de 2011 07:32, Pablo Lobariñas
 escribió:
>
>    En esta ocasión no contamos con charla de reserva, a no ser
> propuesta de última hora, pero siempre podemos usar el tiempo para la
> mesa redonda.
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] estructura de datos, duda existencial

2011-09-22 Por tema Nekmo
Me gusta el tema :D Me apunto lo de shelve... una solución que utilizo
yo, es guardar la información en un archivo json, que aunque no es tan
eficiente, te permite mantener la mayoría de los tipos de Python,
incluyendo diccionarios, listados, etc. Con recursividad incluso :D

Saludos.

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo
Google+: Nekmo Com



El día 22 de septiembre de 2011 07:38, Francesc Alted
 escribió:
> Hola Miguel,
>
> 2011/9/22 Miguel Barraza :
>> hola!, ya arrancamos con mis dudas existenciales, jaja.
>> según las experiencias de ustedes, cual es la mejor forma de almacenar
>> datos?: xml, yamx, json, sql, o archivos.py?.
>> les comento, para practicar estoy diseñando un juego (por simple gusto no
>> mas) y quiero poner objetos que se puedan interactuar, cada objeto tiene sus
>> propiedades, y quería diseñar una clase que tome los datos de ese objeto,
>> cantidad de objetos?, no se, inicialmente pocos pero luego seguir ampliando
>> deapoco, así que quiero generar un estandar para que sea facil agregar
>> nuevos. por eso mi duda, necesito guardar propiedades de ese objeto en un
>> lado, cual es la mejor forma utilizando: xml, yamx, sql, o poniendo
>> directamente variables en archivos.py, cual es la forma mas rápida de
>> capturar esos datos para procesarlos?.
>
> Pues es una buena pregunta, ya que las maneras para serializar datos
> son prácticamente infinitas. Para cosas sencillas, yo te recomendaria
> pickle, que te permite serializar prácticamente cualquier estructura
> de Python de una manera muy eficiente (acuérdate de usar siempre el
> parámetro pickle.HIGHEST_PROTOCOL).
>
> Cuando quieres serializar muchas variables de una tacada, lo mejor es
> que crees un diccionario y pongas todas tus variables allí.  Después
> ya puedes 'picklear' el diccionario entero.
>
> Finalmente, si realmente quieres guardar un montón de pickles, y no
> quieres tener que deserializar todo el fichero (o stream) cada vez, el
> módulo shelve es muy útil.  shelve se comporta básicamente como un
> diccionario, pero basado en disco: cada vez que accedes a una entrada,
> se recupera sólo esa información y se deserializa al vuelo, de manera
> que recuperas el objeto inicial de manera muy sencilla (y eficiente).
>
> Espero sea de ayuda.  Ánimo y adelante!
>
> --
> Francesc Alted
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Hackear objeto list

2011-09-17 Por tema Nekmo
Para este tipo de cosas está la clase UserList:
http://docs.python.org/library/userdict.html?highlight=userlist#UserList.UserList

La cual para compatibilidad con Python 3.x, yo importo así:
import sys
if sys.version_info < (3,0):
from UserDict import UserDict
from UserList import UserList
else:
from collections import UserDict, UserList

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo
Google+: Nekmo Com



El día 17 de septiembre de 2011 21:48, Jose Caballero
 escribió:
>
>
> El 17 de septiembre de 2011 14:47, Oswaldo  escribió:
>>
>> El 17/09/2011 20:20, Jose Caballero escribió:
>>>
>>>
>>> El 17 de septiembre de 2011 06:19, Oswaldo >> <mailto:lis...@soft-com.es>> escribió:
>>>
>>>    Hola,
>>>
>>>    Tengo un objeto 'list' que es creado por una librería externa sobre
>>>    el que me gustaría modificar el método 'append'.
>>>
>>>
>>>
>>>
>>> class List(list):
>>>         def append(self, value):
>>>                 super(List, self).append(value)
>>>                 print 'append ', value
>>>
>>>
>>
>> Gracias por responder, pero como ya comentaba esta solución no me vale ya
>> que al intentar sustituir la lista original con una instancia de esta clase
>> genera un error:
>>
>> L = List()
>> >>> libr.lista = L
>> Traceback (most recent call last):
>>  File "", line 1, in 
>> TypeError: readonly attribute
>>
>
>
>
> quizas si nos muestras el codigo de libr podemos ayudar mejor.
> Tienes sobreescrito __setattr__?
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] ¿Como cierro correctamente un hilo-servidor de sockets?

2011-08-26 Por tema Nekmo
La mejor solución a mi parecer, es modificar el timeout. A parte, si
usáis TCP, a veces solo queda esperar a que se libere... es el
problema de dicho protocolo :P

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo
Google+: Nekmo Com



El día 26 de agosto de 2011 21:53, gerardo Juarez
 escribió:
> Efectivamente Sergio, es el mismo comportamiento que yo he observado: la
> aplicación cierra el socket, termina y aún así, pasan algunos segundos
> para que el puerto quede disponible nuevamente. No me parece que sea un
> problema directamente atribuible a tu aplicación, sino más bien a la
> forma en que el sistema libera -o registra- que los puertos han sido
> liberados. Habría que informarse cómo está implementada la función
> 'restart' de los servicios de Linux, por ejemplo, porque allí terminan
> un servicio y lo reinician tan pronto como es posible. De qué modo
> averiguan que ya está disponible el puerto?
>
> Sergio Martín wrote:
>>
>> Pero al cerrar el socket del servidor (como comento en mi segundo mensaje)
>> ¿no debería liberarse el puerto?
>> Por otro lado ¿como puedo cerrar el hilo si lo tengo en espera de un
>> cliente? ¿Hay alguna otra forma aparte de salir del bucle infinito que
>> tengo?
>>
>> El 26 de agosto de 2011 15:10, chakalinux > <mailto:chakali...@gmail.com>> escribió:
>>
>>    En la interrupcion KeyboardInterrupt tienes que cerrar los hilos
>>    para que no se te quede el mismo en CLOSE_WAIT que en ciertos
>>    casos puede durar bastante en liberarse.
>>
>>    De todas maneras yo te recomiendo que uses la librería select o
>>    asyncore para manejar socket's, intenta evitar cuando puedas
>>    sockets y threading
>>
>>    El 26 de agosto de 2011 02:21, Sergio Martín
>>    mailto:sergiomart...@gmail.com>> escribió:
>>
>>        Comentar que aunque añada la línea:
>>           self.socketserver.close()
>>        en el método close() de la clase TelnetServer el resultado es
>>        el mismo.
>>
>>        El día 26 de agosto de 2011 02:17, Sergio Martín
>>        mailto:sergiomart...@gmail.com>>
>>        escribió:
>>        > Tengo un script en el que, primero, ejecuto un servidor de
>>        sockets en
>>        > un hilo, y cada conexión que reciba, genera su propio hilo.
>>        > El problema viene cuando intento salirme del programa
>>        mediante una
>>        > excepción KeyboardInterrupt controlada, funciona bien si no
>>        ha habido
>>        > ninguna conexión al socket-servidor, pero si me salgo del
>>        programa una
>>        > vez que he recibido alguna conexión, y, a continuación
>>        ejecuto el
>>        > programa de nuevo, me sale un "socket.error: [Errno 48] Address
>>        > already in use", como si no hubiese cerrado el socket del
>>        servidor
>>        > correctamente, teniéndome que esperar un rato hasta que se
>>        libere el
>>        > puerto.
>>        > Tengo controladas dos situaciones una que desde el cliente
>>        telnet se
>>        > pase el comando "quit", con lo que cierro el socket del
>>        cliente, y
>>        > otra cuando se pierde la conexión con el cliente sin
>>        introducir el
>>        > comando "quit"
>>        > El error solo me lo lanza cuando he salido por medio del "quit".
>>        >
>>        > Aviso que está escrito en python3, y se que hay mejores
>>        formas de
>>        > hacer esto en vez de usar hilos, como el módulo twisted (sin
>>        > compatibilidad python3) o el asyncore, pero solo tengo planeado
>>        > recibir un par de conexiones simultáneas por lo que no se
>>        generarán
>>        > muchos hilos.
>>        >
>>        > Pongo una versión simplificada del programa, con solo lo
>>        básico para
>>        > ilustrar el problema:
>>        >
>>        > #! /usr/bin/env python3
>>        >
>>        > import threading
>>        > import socket
>>        > import sys
>>        > import time
>>        >
>>        > class TelnetServer(threading.Thread):
>>        >
>>        >    def __init__(self):
>>        >        threading.Thread.__init__(self)
>>        >        self.socketserver = socket.socket()
>>        >     

Re: [Python-es] re.match funciona bien en la consola y mal en un script

2011-08-10 Por tema Nekmo
Yo te aconsejo usar logging y escribir en los logs las excepciones que
ocurran... ayuda mucho :P

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo
Google+: Nekmo Com



El día 10 de agosto de 2011 18:48, Rolando Espinoza La Fuente
 escribió:
> 2011/8/10 Granjero Moe :
>> Granjero Moe  writes:
> [...]
>>
>> Lo siento, era la tontería más tonta: me faltaba el import re
>>
>> Como tenía en cógido metido en un try-except pues me capturaba la excepción
>> pero no sabía qué había ocurrido.
>> ¿Hay alguna manera de pintar una traza de la excepción para saber qué 
>> ocurrió?
>
> traceback.print_exc() ?
>
> ej.
>
> try:
>     raise Exception
> except Exception:
>     traceback.print_exc()
>
>
> ~Rolando
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Cliente HTTP para pruebas de red

2011-07-23 Por tema Nekmo
Puede hacerlo de forma sencilla con urllib, y te recomiendo usar threads.

Saludos.

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo
Google+: Nekmo Com



El día 23 de julio de 2011 07:23, Allan N. Porras
 escribió:
> Me han dicho que para "pegar" o "tostar" un web server es enviandole muchos 
> POST. ¿Como puedo hacer eso en Python?
>
> Necesito "pegar" un web server (Apache o cualquiera) y medir el desempeño del 
> sistema operativo.
>
> Gracias a todos por las ideas.
>
> - Mensaje original -
> De: "lasizoillo" 
> Para: "La lista de python en castellano" 
> Enviados: Sábado, 16 de Julio 2011 5:39:42
> Asunto: Re: [Python-es] Cliente HTTP para pruebas de red
>
> El día 16 de julio de 2011 06:24, Allan N. Porras
>  escribió:
>> He estado leyendo estas bibliotecas, pero no tengo idea de còmo funciona.
>>
>> http://code.google.com/p/httplib2/wiki/Examples
>>
>> Ideas??
>>
>
> Si, mira, esta todo explicado en el siguiente enlace:
> http://www.w3.org/Protocols/rfc2616/rfc2616.txt
>
> Una vez mirado eso podrás entender cómo funciona httplib2 o incluso
> hacerte tu propia librería a base de sockets.
>
> Para entender como hacer pruebas para "tostar" un servidor web antes
> tendrás que saber como está (o puede estar) implementado el server. A
> veces la mejor forma de dejarlo ko no es enviar muchas peticiones muy
> rápidas:
> http://en.wikipedia.org/wiki/Slowloris
>
> Si sabes como funcionan los buffers tcp, el manejador de eventos de
> red, que partes se tratan en modo kernel o en modo usuario, la
> implementación de la multitarea (procesos, hilos, eventos), ... es más
> fácil hacer algo para "tostar" el sistema.
>
> Saludos:
>
> Javi
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Reunión día 12 de Mayo de "python-madrid"

2011-05-11 Por tema Nekmo
Me va a ser imposible ir por la distancia, y porque hoy tengo cosas
que hacer... aunque espero que os podáis reunir mucho, y sobre todo
que os lo paséis bien ;-)

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 12 de mayo de 2011 03:54, Jesus Cea  escribió:
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
>
> Pablo Lobariñas está pachuchillo y no podrá asistir mañana, así que
> mando este mensaje en su lugar.
>
> Convocatoria de la reunión mensual de Mayo de python-madrid:
>
> Día: 12 de Mayo
> Hora: 20:00
> Lugar:  o2c. Calle orellana 1, 1ºD. Metro Alonso Martinez.
>
> Charlas:
>
> * David: Simulador de lentes gravitacionales.
> * Segunda charla a decidir entre
>  * Jesús Cea: Persistencia con Durus
>  * Jesús Espino: Introducción a GTK para Python
>  * Evolución del grupo y posibilidades de hosting de audio y video,
>    local permanente, etc.
>
> David grabará el audio de la sesión. Kiko posiblemente no esté para
> grabar el video, así que si algún otro asistente puede ocuparse de ello,
> perfecto.
>
> Publico esta notificación en las listas de correo python-madrid,
> python-es y en el twitter @python_madrid.
>
> PS: Yo intentaré asistir, pero no es seguro que pueda. Si me retraso,
> empezad sin mí.
>
> - --
> Jesus Cea Avion                         _/_/      _/_/_/        _/_/_/
> j...@jcea.es - http://www.jcea.es/     _/_/    _/_/  _/_/    _/_/  _/_/
> jabber / xmpp:j...@jabber.org         _/_/    _/_/          _/_/_/_/_/
> .                              _/_/  _/_/    _/_/          _/_/  _/_/
> "Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
> "My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
> "El amor es poner tu felicidad en la felicidad de otro" - Leibniz
> -BEGIN PGP SIGNATURE-
> Version: GnuPG v1.4.10 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
> iQCVAwUBTcs9xZlgi5GaxT1NAQIkPAP9Eok822Rx8pnDjayi5LPWoK1UFIieLoQ6
> Z4wrdXTHTmXSU9JnW0PkRvUdTd2Ep/qKwipaRUIleOVQKSwbMqi5+57LmofQQvS1
> 67EjsK4wsa1L036P7VypUxQLOtTbDJMt6647jzuUG0NY9Po70DzGjU89r6rnvoBK
> jxOOeQ+tyDI=
> =sWmw
> -END PGP SIGNATURE-
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Recarga de los archivos fuente

2011-05-04 Por tema Nekmo
En Python3 (que es lo que él usa) ahora reload se encuentra en el módulo imp.

http://docs.python.org/release/3.0.1/whatsnew/3.0.html
http://docs.python.org/release/3.0.1/library/imp.html#imp.reload

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 4 de mayo de 2011 15:34, Francisco Javier Cuadrado
 escribió:
> El día 4 de mayo de 2011 15:33, Francisco Javier Cuadrado
>  escribió:
>> El día 4 de mayo de 2011 15:12, Douglas Jiménez  escribió:
>>> ¡Hola a tod@s!
>>>
>>> Estoy llevando mi labor de principiante de la siguiente manera: uso gedit
>>> para editar los programas fuente y los corro desde un terminal linux. Ahora
>>> bien, he observado que las modificaciones de los programas fuente no los
>>> reconoce python (3.1) en la misma sesión. Tengo que terminar la sesión y
>>> volver a ella para que sean tomadas en cuenta.
>>>
>>> Cada vez que modifico escribo import .
>>>
>>> ¿Alguien sabe por qué sucede esto?
>>>
>>
>> Porque una vez importas un módulo, éste se queda guardado en memoria
>> de modo que aunque hagas otro import no se modificará. Aunque todos
>> hemos probado «a mano» alguna vez, lo mejor es que hagas tests
>> unitarios o cualquier otro tipo de pruebas automatizadas.
>>
>
> Se me olvidaba, también puedes ejecutar la función reload (modulo)
> para recargar un módulo ya importado.
>
>
> --
> Saludos
>
> Fran
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Modificando un XML

2011-04-26 Por tema Nekmo
Te recomiendo no parsear XML/XHTML mediante regex, no es una buena idea ;-)

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 26 de abril de 2011 13:04, Francisco Rivas
 escribió:
> Hola a todos, perdonen la tardanza he estado fuera estos dias. Feliz
> Pascua!.
> Pues gracias a los comentarios hare pruebas con varias de ellas, pero estoy
> viendo que por ejemplo una expresion regular tambien puede ser muy util sin
> usar ningun modulo adicional.
>
> lxml esta muy bien. :D
>
> Muy buen dia.
>
> 2011/4/21 lasizoillo 
>>
>> El día 21 de abril de 2011 15:16, lopz  escribió:
>> >
>> > El día 20 de abril de 2011 09:37, lasizoillo 
>> > escribió:
>> >>
>> >> Recuerdo que cuando usaba BeautifulSoup, antes de por supuesto pasarme
>> >> a otra librería, tenía la extraña costumbre de leer la documentación:
>> >>
>> >> http://www.crummy.com/software/BeautifulSoup/documentation.html#Modifying%20the%20Parse%20Tree
>> >
>> >
>> > Solo por curiosidad ¿cuál usas ahora?
>> > Es que yo me he quedado con BS y al parecer el lxml va bastante fino.
>> >
>>
>> Pues si, uso lxml mayormente. Pero no hay que olvidarse de BS del todo ;-)
>> http://lxml.de/elementsoup.html
>>
>> Tener xpath y selectores css puede ahorrar mucho tiempo (de
>> programador) y lineas de código. Con el iterparse puedes procesar
>> ficheros xml de varios gigas a una velocidad equivalente o superior a
>> la que se puede conseguir con un parser sax en java (mucho más coñazo
>> de hacer y mantener).
>>
>> Tanto para webscraping, como para procesar ficheros enormes en xml,
>> lxml no defrauda. La unica desventaja es que hay que compilar cosas en
>> c, no es pure python.
>>
>> Saludos:
>>
>> Javi
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Convertir de mutable a inmutable

2011-04-24 Por tema Nekmo
Vale, entonces, por lo que entiendo, la idea es comparar si un
diccionario es igual a otro, ¿verdad? En tal caso, habría que tener en
cuenta que el orden de los valores puede cambiar, lo cual es un
problema... :|

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 24 de abril de 2011 13:43, Pepe Aracil  escribió:
> Hola Nekmo.
>
> Creo que me he explicado mal, la idea de usar repr() no es para parsear JSON
> que para eso ya existe el módulo json.
> Mi intención es cachear peticiones JSON/RPC  que se traducen en diccionarios
> python en el lado del server. Para lo cual necesito que estos diccionarios
> puedan formar parte de las keys de un diccionario que contiene los
> resultados cacheados. Para tal fin hay que transformar estos diccionarios en
> objetos inmutables y repr() es una de las opciones, otra podria ser Pickle.
>
> Si las cadenas json/rpc son muy largas, simpre se pueden acortar en md5:
>
> jsonObj = { "method": "echo", "params": ["Hello JSON-RPC"], "id": 1}
> result = doJsonMethod(jsonObj)
>
> hashable = md5.new(cPickle.dumps(jsonObj)).digest()
> cache[hashable] = result
>
> Salud.
>
>
> El 24 de abril de 2011 12:52, Nekmo  escribió:
>>
>> Si usas repr no te va a funcionar. Python no es igual a la sintaxis de
>> Javascript (la cual es JSON). Por ejemplo, mientras que en JSON tienes
>> false, true y null, en Python tienes False, True y None, lo cual te
>> provocará a la hora de trabajar con el "pseudo JSON" bonitos errores
>> del tipo "False no está definida", además de que como tengas algo que
>> no sea un string en la key de un diccionario, a la hora de interpretar
>> el JSON también te petará (en el caso de usar el módulo JSON, te
>> petará al dumpear xD).
>>
>> Un cordial saludo:
>> -- Nekmo.
>>
>> Sitio web: http://nekmo.com
>> Dirección de contacto: conta...@nekmo.com
>> XMPP/Jabber: conta...@nekmo.com
>> Identi.ca: http://identi.ca/nekmo
>> Diaspora: Nekmo
>>
>>
>>
>> El día 23 de abril de 2011 14:24, tny  escribió:
>> > El lun, 18-04-2011 a las 18:24 +0200, Pepe Aracil escribió:
>> >> Hola Lista.
>> >>
>> >> Tengo que cachear objetos JSON, es decir puedo encontrarme con listas y
>> >> diccionarios
>> >> que son mutables y por tanto al no  ser "hashables" no pueden formar
>> >> parte
>> >> de las keys
>> >> de un diccionario.
>> >>
>> >> Una idea es pasar todos los objetos mutables (diccionarios y listas) a
>> >> inmutables (tuplas)
>> >> mediante una función recursiva.
>> >>
>> >> Ejemplo:
>> >> {"method":"foo", "params":["sota","caballo"]}   -->  (("method","foo"),
>> >> (params,("sota","caballo")))
>> >> Este sistema se me antoja algo "Gastón" en cuanto a ciclos CPU
>> >>
>> >> El otro método consiste en usar la representación en cadena del objeto
>> >> usando repr(objeto):
>> >> repr({"method":"foo", "params":["sota","caballo"]}) ->
>> >> '{"method":"foo",
>> >> "params":["sota","caballo"]}'
>> >>
>> >>
>> >> ¿Alguna idea más al respecto?
>> >>
>> >> Gracias.
>> >> ___
>> >> Python-es mailing list
>> >> Python-es@python.org
>> >> http://mail.python.org/mailman/listinfo/python-es
>> >> FAQ: http://python-es-faq.wikidot.com/
>> >
>> > Voto por repr
>> >
>> > Y mucho mejor si deribas la clase de los objetos JSON y le añades el
>> > metodo hash, de modo que te cree el hash de la representación del json
>> >
>> >
>> > ___
>> > Python-es mailing list
>> > Python-es@python.org
>> > http://mail.python.org/mailman/listinfo/python-es
>> > FAQ: http://python-es-faq.wikidot.com/
>> >
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Convertir de mutable a inmutable

2011-04-24 Por tema Nekmo
Si usas repr no te va a funcionar. Python no es igual a la sintaxis de
Javascript (la cual es JSON). Por ejemplo, mientras que en JSON tienes
false, true y null, en Python tienes False, True y None, lo cual te
provocará a la hora de trabajar con el "pseudo JSON" bonitos errores
del tipo "False no está definida", además de que como tengas algo que
no sea un string en la key de un diccionario, a la hora de interpretar
el JSON también te petará (en el caso de usar el módulo JSON, te
petará al dumpear xD).

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 23 de abril de 2011 14:24, tny  escribió:
> El lun, 18-04-2011 a las 18:24 +0200, Pepe Aracil escribió:
>> Hola Lista.
>>
>> Tengo que cachear objetos JSON, es decir puedo encontrarme con listas y
>> diccionarios
>> que son mutables y por tanto al no  ser "hashables" no pueden formar parte
>> de las keys
>> de un diccionario.
>>
>> Una idea es pasar todos los objetos mutables (diccionarios y listas) a
>> inmutables (tuplas)
>> mediante una función recursiva.
>>
>> Ejemplo:
>> {"method":"foo", "params":["sota","caballo"]}   -->  (("method","foo"),
>> (params,("sota","caballo")))
>> Este sistema se me antoja algo "Gastón" en cuanto a ciclos CPU
>>
>> El otro método consiste en usar la representación en cadena del objeto
>> usando repr(objeto):
>> repr({"method":"foo", "params":["sota","caballo"]}) -> '{"method":"foo",
>> "params":["sota","caballo"]}'
>>
>>
>> ¿Alguna idea más al respecto?
>>
>> Gracias.
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>
> Voto por repr
>
> Y mucho mejor si deribas la clase de los objetos JSON y le añades el
> metodo hash, de modo que te cree el hash de la representación del json
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Modificando un XML

2011-04-20 Por tema Nekmo
Te recomiendo echarle un ojo a lxml: http://lxml.de/

tras haber trabajado bastante tiempo en el parseo de XML en Python
para XMPP, mi conclusión es es que con diferencia la mejor solución,
tanto en facilidad de manejo como en rendimiento.

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 20 de abril de 2011 15:57, Francisco Rivas
 escribió:
> Gracias a todos por sus respuestas.
>
> 2011/4/20 lasizoillo 
>>
>> El día 20 de abril de 2011 15:07, Francisco Rivas
>>  escribió:
>> >
>> >
>> > 2011/4/20 Luis Miguel Morillas 
>> >>
>> >> El día 20 de abril de 2011 14:30, Francisco Rivas
>> >>  escribió:
>> >> > Hola *,
>> >> > Quiero hacer un script para modificar un archivo XML por supuesto
>> >> > utilizare
>> >>
>> >> ¿por supuesto?
>> >>
>> > Si :P
>> >
>>
>> Recuerdo que cuando usaba BeautifulSoup, antes de por supuesto pasarme
>> a otra librería, tenía la extraña costumbre de leer la documentación:
>>
>> http://www.crummy.com/software/BeautifulSoup/documentation.html#Modifying%20the%20Parse%20Tree
>>
>> ¿Tienes algo que no se pueda hacer tal y como indican en la documentación?
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] CGI -> importar clases

2011-04-18 Por tema Nekmo
Lo que ocurre es que hay que seguir la estructura de proyectos de Python ;-)

Si tenemos en nuestro proyecto:

/
/modulo/
/modulo/__init__.py
/modulo/modulo.py
/mi_programa.py
/otro.py

Y estamos importando desde mi_programa.py, el método será el siguiente:
Al hacer "from . import modulo", estaremos ejecutando __init__.py de /modulo/
Al hacer "from . modulo import modulo", estaremos importando el modulo.py
Al hacer "from . import otro", estaremos importando "otro.py"
Al hacer "from . otro import funcion", estaremos importando la función
en concreto de otro.py

Si estamos en "modulo.py", al hacer "from .. import otro" estaremos
importando el de un directorio del nivel inferior en el árbol del
proyecto, es decir, "otro.py". Y recordad que para poder importar de
un directorio, este debe tener un "__init__.py" ;-)

Espero que con estos ejemplos haya quedado claro.

Saludos.

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 17 de abril de 2011 22:49, Daπid  escribió:
> En beneficio de la pedagogía, ¿por qué funciona? ¿Qué diferencia
> introduce el punto?
>
> ¡Gracias!
>
> 2011/4/17 Jesús Genicio :
>> El día 17 de abril de 2011 04:19, Nekmo  escribió:
>>> Prueba con lo siguiente y dinos si te funciona:
>>>
>>> from . class_manejo_web import manejo_web
>> Perfecto!!!
>>
>> Muchas Gracias.
>>
>>>
>>> Un cordial saludo:
>>> -- Nekmo.
>>>
>>> Sitio web: http://nekmo.com
>>> Dirección de contacto: conta...@nekmo.com
>>> XMPP/Jabber: conta...@nekmo.com
>>> Identi.ca: http://identi.ca/nekmo
>>> Diaspora: Nekmo
>>>
>>>
>>>
>>> El día 16 de abril de 2011 20:21, Jesús Genicio  
>>> escribió:
>>>> Hola amigo@s:
>>>>
>>>> Pregunta de novato :))
>>>>
>>>> Tengo un programa para ejecutar sobre web, el cual tengo dividido en
>>>> archivos, cada uno con una clase:
>>>>
>>>> Y al hacer sobre un archivo de prueba ( /var/www/py/prueba.py) esto:
>>>>
>>>> from class_manejo_web import manejo_web
>>>>
>>>> estando el archivo "class_manejo_web.py en el mismo directorio que 
>>>> prueba.py
>>>>
>>>> me da este error:
>>>>
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] Traceback (most
>>>> recent call last):
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1]   File
>>>> "/var/www/py/liquidacion/prueba.py", line 11, in 
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1]
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] from
>>>> class_calculo_prima import calcula_prima
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] ImportError
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] :
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] No module named
>>>> class_calculo_prima
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1]
>>>> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] Premature end of
>>>> script headers: prueba.py
>>>>
>>>> Está claro que no encuentra el archivo, ¿dónde o de qué manero lo
>>>> tengo que declarar, guardar...?
>>>>
>>>> S2.
>>>> ___
>>>> Python-es mailing list
>>>> Python-es@python.org
>>>> http://mail.python.org/mailman/listinfo/python-es
>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>
>>> ___
>>> Python-es mailing list
>>> Python-es@python.org
>>> http://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Convertir de mutable a inmutable

2011-04-18 Por tema Nekmo
en JSON las claves de los diccionarios solo pueden ser strings, y al
ser los strings objetos inmutables, no tendrás el problema del que
hablas.

Por cierto, usa el módulo json, eval es completamente inseguro y nada
recomendable.

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 18 de abril de 2011 18:24, Pepe Aracil  escribió:
> Hola Lista.
>
> Tengo que cachear objetos JSON, es decir puedo encontrarme con listas y
> diccionarios
> que son mutables y por tanto al no  ser "hashables" no pueden formar parte
> de las keys
> de un diccionario.
>
> Una idea es pasar todos los objetos mutables (diccionarios y listas) a
> inmutables (tuplas)
> mediante una función recursiva.
>
> Ejemplo:
> {"method":"foo", "params":["sota","caballo"]}   -->  (("method","foo"),
> (params,("sota","caballo")))
> Este sistema se me antoja algo "Gastón" en cuanto a ciclos CPU
>
> El otro método consiste en usar la representación en cadena del objeto
> usando repr(objeto):
> repr({"method":"foo", "params":["sota","caballo"]}) -> '{"method":"foo",
> "params":["sota","caballo"]}'
>
>
> ¿Alguna idea más al respecto?
>
> Gracias.
>
>
>
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] CGI -> importar clases

2011-04-16 Por tema Nekmo
Prueba con lo siguiente y dinos si te funciona:

from . class_manejo_web import manejo_web

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 16 de abril de 2011 20:21, Jesús Genicio  escribió:
> Hola amigo@s:
>
> Pregunta de novato :))
>
> Tengo un programa para ejecutar sobre web, el cual tengo dividido en
> archivos, cada uno con una clase:
>
> Y al hacer sobre un archivo de prueba ( /var/www/py/prueba.py) esto:
>
> from class_manejo_web import manejo_web
>
> estando el archivo "class_manejo_web.py en el mismo directorio que prueba.py
>
> me da este error:
>
> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] Traceback (most
> recent call last):
> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1]   File
> "/var/www/py/liquidacion/prueba.py", line 11, in 
> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1]
> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] from
> class_calculo_prima import calcula_prima
> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] ImportError
> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] :
> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] No module named
> class_calculo_prima
> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1]
> [Sat Apr 16 20:20:20 2011] [error] [client 127.0.0.1] Premature end of
> script headers: prueba.py
>
> Está claro que no encuentra el archivo, ¿dónde o de qué manero lo
> tengo que declarar, guardar...?
>
> S2.
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Lista de Django en español

2011-04-09 Por tema Nekmo
También hay que tener en cuenta que la comunidad de Django es
muchísimo mayor. Tienes muchas webs de apps Django (con las cuales
montar una web es como jugar a los lego), bastante documentación y
unas bases sólidas. No pretendo hacer spam ni nada parecido... pero es
que si queréis recomendar un framework web en Python, creo que lo
mejor sería recomendar el que tiene mayor soporte. Además, el comienzo
de este hilo era por Django, no sé qué tendrá que ver aquí web2py.

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 9 de abril de 2011 21:15, Andrey Antoukh  escribió:
> Hola Fernando,
> Si habras leido los ultimos tres mensajes, te estas metiendo donde no te 
> llaman!
> Y si pensaras un poquito, verias que tu mensaje esta fuera del tema.
>
> Te pondre 2 ejemplos:
>
> Estamos en una conferencia de software libre y viene uno de MS y dice,
> prueba mi Windows 7 aver que tal te parece? Notarias que este
> comentario seria fuera del tema, el tuyo esta enla misma situacion.
> Eso se define como SPAM.
>
> Si la pregunta fuera algo mas general, sobre plataformas de
> desarrollo, nadie te diria nada, pero es que la pregunta no fue en
> ningun momento dirigida a lo que tu escribiste.
>
> Y tal como ya han comentado los mensajes anteriores, la comunidad de
> web2py suele ser muy pesada, sin ser arrogante, tu eres un claro
> ejemplo. Y mi critica constructiva fue, en vez de dar tanto spam a
> algo que os gusta tanto, mejorar la documentacion, que creo que es uno
> de los grandes puntos negros de web2py... y no hara falta hacer spam,
> la gente leera y probara y lo usara.
>
> Yo uso varios fw, y en especial django, y ninguno de esos fw es
> web2py, y la principal razon, no es que sea malo, es que la
> documentacion es horrible.
>
> Si programara por hobbie, a lo mejor lo probaria, pero no me
> ariesgaria en ningun momento meterme en un proyecto comercial con
> web2py. ¿Por que? Mala documentacion, la poca comunidad que me he
> encontrado solo hace que spamear, en ves de resolver dudas y aportar
> al proyecto. (No digo que todos sean asi, pero es la impresion que da!
> Y es algo a mejorar).
>
> Solo he mencionado pocos puntos el por que web2py tiene tan mala fama...
>
> En fin, este mensaje esta fuera de este hilo, asi que disculpen las molestias.
> Un saludo.
> Andrei.
>
> El día 9 de abril de 2011 18:01, FERNANDO VILLARROEL
>  escribió:
>> Hola Andrey.
>>
>> Amigo primero que nada bajate de tu limbo y tu arrogancia.
>>
>> Tampoco es bueno que hables de Web2py como SPAM ya que hasta donde se esta 
>> lista es de discusion del lenguaje Python y ambos Django y Web2py estan 
>> escritos en el mismo lenguaje por lo que esta lista tampoco es exclusiva de 
>> Django.
>>
>> Y por ultimo sabras que el conocimiento es libre.
>>
>> Saludos.
>>
>> --- On Sat, 4/9/11, Andrey Antoukh  wrote:
>>
>>> From: Andrey Antoukh 
>>> Subject: Re: [Python-es] Lista de Django en español
>>> To: "La lista de python en castellano" 
>>> Cc: "FERNANDO VILLARROEL" 
>>> Date: Saturday, April 9, 2011, 12:23 PM
>>> El 9 de abril de 2011 16:30, FERNANDO
>>> VILLARROEL
>>> 
>>> escribió:
>>> >
>>> > Hola Carlos.
>>> >
>>> > Por que no le hechas una mirada a Web2py te lo
>>> recomiendo, la curva de aprendizaje la veo menos pronunciada
>>> que Django, el soporte y la documentación estan muy buenos
>>> tambien.
>>> >
>>> > www.web2py.com
>>>
>>>
>>> 0_o
>>>
>>> Discrepo en absoluto con lo de web2py, la documentacion es
>>> horriblemente horrible en comparacion a casi cualquier
>>> fw...,
>>> Pero mas alla de ello, si te cuesta lleer la doc de django,
>>> quizas
>>> deberias primero aprender a leer la doc, o quizas las dos
>>> cosas... :D
>>>
>>> Disculpen mi arrogancia, pero es que aqui continuamente veo
>>> spam de
>>> web2py, y en vez de dar tanto spam, haced algo mas
>>> oportuno, escribid
>>> mejor documentacion, y no hara falta hacer spam para que
>>> alguien lo
>>> use :D
>>>
>>> Y hablo de spam, por que cada vez que alguien pregunta por
>>> un fw que
>>> no sea web2py, siempre hay alguno que mete la nariz donde
>>> no le
>>> llaman.
>>>
>>> Andrei.
>>>
>>> >
>>> > Saludos.
>>> >
>>> > --- On Fri, 4/8/11,

Re: [Python-es] trabajo con hilos de ejecución

2011-04-08 Por tema Nekmo
Algunos ejemplos:
http://mundogeek.net/archivos/2008/04/18/threads-en-python/
http://www.wellho.net/solutions/python-python-threads-a-first-example.html

Y el manual:
http://docs.python.org/library/threading.html

Tienes que usar el módulo threading (el módulo thread es a bajo
nivel). Esto es lo básico, aunque avisarte que los hilos son todo un
mundo... en Python y en cualquier lenguaje. Seguramente tendrás que
buscar por tu cuenta para casos más complejos.

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 8 de abril de 2011 17:33, Yixander de la Paz Milán
 escribió:
> Primeramente decir que soy novato programando en python y quisiera saber como 
> ejecutar varios metodos a la vez, es decir de forma concurrente, los mismo se 
> encuentran en diferentes clases. He estado viendo todo el tema acerca de los 
> hilos, por lo que quisiera que si no fuera molestia me mandaran un ejemplo de 
> como hacer esto...
>
> saludos
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Copiar varios archivos a carpetas con nombres de los archivos

2011-04-06 Por tema Nekmo
Ummm... y ahora que lo pienso... ¿no sería mejor que integrasen shutil
en el módulo os?

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 5 de abril de 2011 19:47, Daπid  escribió:
> A lo mejor con la aplicación final no es necesario, pero shutil es,
> además, multiplataforma, por lo que te permitiría correr el mismo
> programa en diversos SO.
>
> Ya digo, esto depende de la aplicación final. Si es un script de uso
> propio, no supone una ventaja específica; pero si es parte de una
> aplicación mayor que se vaya a distribuir, shutil gana mucho.
>
> En todo caso, aprender siempre está bien.
>
> 2011/4/5 gerardo Juarez :
>> La ventaja de shutil es que ya te hace varias cosas automáticamente: copiar
>> permisos, fechas, etc. Incluso puedes filtrar los archivos que quieres que
>> copie. Yo usaría comandos del sistema si tuviera que hacer algo muy especial
>> con cada archivo, porque esta es
>> definitivamente la opción más flexible, pero depende de lo que necesites.
>>
>> Gerardo
>>
>> Félix Palazuelos Pérez wrote:
>>>
>>> Tal vez es más apropiado hacerlo con comandos de sistema.
>>> 
>>>
>>> ___
>>> Python-es mailing list
>>> Python-es@python.org
>>> http://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Enviar imagenes mediante sockets

2011-04-06 Por tema Nekmo
Tienes que poner rb en vez de r, y wb en vez de w. Sino lo guardará y
leerá en ASCII, lo cual no es el resultado que buscas ;-)

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 7 de abril de 2011 03:57, lopz  escribió:
> Pero enviar una imágen o cualquier binario no es lo mismo?
>
> No sé si diré alguna tontería pero no se puede hacer algo como:
>
> f = open('image.jpg', 'r')
>
> while True:
>      buf = f.read(nro_bytes)
>      if not buf:
>          sock.send(buf)
>
> y desde el servidor, leer lo que se envíe, almacenar en un buffer y luego un
>
> img = open('image2.jpg, 'w')
> img.write(buffer)
>
> No se debería poder de esta forma?
>
>
> El día 6 de abril de 2011 21:51, Abraham Zamudio
>  escribió:
>> Es absolutamente necesario con sockets  ... porque me parece mas natural
>> hacer con algun modulo  que implemente el paso de mensajes  : mpi4py .
>>
>> 2011/4/6 craf 
>>>
>>> Hola.
>>>
>>> Estoy probando los sockets en Python y he visto la forma en como
>>> funciona para enviar string. Mi consulta es si alguien sabe en donde se
>>> puede encontrar algo de información sobre como enviar imágenes mediante
>>> Sockets. Utilizo Python 2.7 y he leído la información con respecto a los
>>> Sockets de la pagina web de Python, pero no logro comenzar.
>>>
>>> De ante manos muchas gracias por cualquier ayuda.
>>>
>>> Saludos.
>>>
>>> Cristian Abarzúa F
>>>
>>>
>>> ___
>>> Python-es mailing list
>>> Python-es@python.org
>>> http://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>>
>> --
>> Abraham Zamudio Ch.
>>
>>
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
>
>
> --
> lopz es libre, usa --> GNU/linux gentoo
>
> +--[RSA 2048]--+
> |  ..o.o=+       |
> |   o =o*.+      |
> |  . . *oO .      |
> |     .EBoo      |
> |      o.S         |
> +--[lopz.org]--+
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Podcast Z #2: Animalario con lenguajes dinámicos

2011-03-28 Por tema Nekmo
No tengo nada más que decir a lo que ya han dicho otros: Genial
trabajo, y ánimo para que haya muchos más :-)

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 22 de marzo de 2011 02:24, Jesus Cea  escribió:
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA1
>
> Publicidad relevante :)
>
> http://podcast.jcea.es/podcastz
>
> - --
> Jesus Cea Avion                         _/_/      _/_/_/        _/_/_/
> j...@jcea.es - http://www.jcea.es/     _/_/    _/_/  _/_/    _/_/  _/_/
> jabber / xmpp:j...@jabber.org         _/_/    _/_/          _/_/_/_/_/
> .                              _/_/  _/_/    _/_/          _/_/  _/_/
> "Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
> "My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
> "El amor es poner tu felicidad en la felicidad de otro" - Leibniz
> -BEGIN PGP SIGNATURE-
> Version: GnuPG v1.4.10 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
> iQCVAwUBTYf6WJlgi5GaxT1NAQIYHgP/YCrhOaVwKuVphleoi8HBL7hUMbSq0Amq
> oROsh7JkRwLn3xxCpOVyps6s+tqLYgXhktsJKpne73qMD9NOW1OibgLIysV7W6ym
> rMjZ8kbo+CC50Fsr6ybfJulwopruJtIO6jqnGmLj1MVrE75ICnVijkR+HSMNCXze
> tMi+EreoR5E=
> =F7uw
> -END PGP SIGNATURE-
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Duda filosofica

2011-03-22 Por tema Nekmo
¿Nos preguntas a una lista de Django si usar Django? xD Si te gusta,
úsalo... personalmente, aún veo un poco verde Django, y esto lo digo
como programador en él, y no sé como andarán las cosas "por el lado
oscuro"... de todas maneras, decir que me las apaño muy bien con lo
que hay, y que el gran número de aplicaciones que hay en Django y
extensiones, te facilita muchísimo el trabajo, sin tener que volver a
inventar la rueda cada vez.

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 23 de marzo de 2011 00:48, gabriel costa  escribió:
> Buenas,
> Es la primera vez que escribo en esta lista, espero que no sea la ultima.
>
> Soy programador web profesional de .NET, y estoy feliz en mi lado. Pero
> desde antes incluso de meterme en el mundo de .NET (6 años llevo),
> ya conocía python y había hecho alguna cosita con el. Ahora, me esta
> saliendo una propuesta para montar una startup, donde vamos a necesitar
> buenos servidores, potencia y escalabilidad, por lo que seguramente montemos
> la startup en "la nube", una opción es el Azure de Microsoft, donde haría el
> desarrollo en .NET, pero otra que me esta llamando muchísimo es el App
> Engine de google, sobre Python.
> Y claro, estoy aprendiendo python y django a marchas forzadas, por ahora no
> me cuesta mucho, no lo domino como .NET pero me voy haciendo a ello, pero
> aun tengo el miedo del novato, se que se puede hacer en .NET, se los
> tiempos, se mis tiempos en hacer las cosas, todo esto lo desconozco de
> python, pero se que python es más rápido, conciso y eficaz, por lo que llevo
> varios días dandole vueltas a que hacer y no se..
>
> Que opinais? os ha pasado algo asi? que me recomendais?
>
> Saludos
>
>
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] python

2011-03-19 Por tema Nekmo
Mi recomendación es siempre usar los módulos de Core cuando sea
posible para este tipo de cosas. Python es un lenguaje
multiplataforma, y sus aplicaciones también deberían serlo.

Por ejemplo, para borrar un archivo:

os.remove('Archivo desde el directorio raíz del proyecto')

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 19 de marzo de 2011 22:07, José Luis Torre Hernández
 escribió:
>
>
> El 19 de marzo de 2011 21:45, Yixander de la Paz Milán
>  escribió:
>>
>> buenas tardes:
>>
>> estoy aprendiendo a programar en python y necesito saber si existe alguna
>> función que nos brinde el espacio usado por las diferentes particiones,
>> espacio usado, disponible, espacio libre, etc.
>>
>> gracias
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>
> Hola Yixander:
>
> Puedes importar el  módulo os y luego utilizar el método system
> proporcionando la órden del sistema operativo que proporcione lo que deseas;
> por ej:
>
> import os
>
> os.system( 'ls -lR')
>
> os.system( 'du  -h')
>
> os.system( 'vi prueba.txt')
>
> y de este modo puedes acceder a todas las órdenes que te interesen desde tu
> propia aplicación.
>
> Saludos
>
> José Luis
>
>
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] parsear HTML

2011-03-02 Por tema Nekmo
Yo con lxml suelo usar una funcionalidad que me permite filtrar usando
CSS, lo cual me es una pasada :D Además tienes lxml tanto en Python3
como en 2.x

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



2011/3/2 Luis Miguel Morillas :
> El día 2 de marzo de 2011 15:23, (P@vel)  escribió:
>> Como puedo de un archivo html cojer todas las etiquetas  que tengan
>> un  que se llame cuentos infantiles por ejemplo, y guardar el valor
>> que tenga los demas  de ese , es decir cojer los valores de todas
>> las columnas de esa fila, por ejemplo: cenicienta, 25.00
>>
>> 
>> Cuentos Infantiles
>> Cenicienta
>> 25.00
>> 
>>
>
> Yo lo hago así usando una expresión xpath con amara:
>
> from amara.bindery import html
>
> doc = html.parse(url_de_la_web)
> cuentos = doc.xml_select(u'//tr[td="Cuentos Infantiles"]')
>
> # nodos html
> for cuento in cuentos:
>    cuento.xml_encode()
>
> # sólo contenido
> for cuento in cuentos:
>    for datos in cuento.xml_children:
>        print datos,
>
>
> Si quieres probar amara sin instalar, he creado un amaraPortable para
> windows: 
> https://bitbucket.org/lmorillas/amaraportable/downloads/AmaraPortable.exe
>
>
> Saludos,
>
> -- luismiguel
>
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] parsear HTML

2011-03-02 Por tema Nekmo
Tienes un módulo con Python llamado así, HTMLParser. A mí
personalmente no me gusta demasiado, y no mantiene el árbol como
debería... pero para lo que quieres puede valerte. Hay un módulo que
me encanta (no está en Core) llamado lxml que también soporta HTML. Te
recomiendo echarle un ojo ;-)

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: conta...@nekmo.com
Identi.ca: http://identi.ca/nekmo
Diaspora: Nekmo



El día 2 de marzo de 2011 15:23, (P@vel)  escribió:
> Como puedo de un archivo html cojer todas las etiquetas  que tengan
> un  que se llame cuentos infantiles por ejemplo, y guardar el valor
> que tenga los demas  de ese , es decir cojer los valores de todas
> las columnas de esa fila, por ejemplo: cenicienta, 25.00
>
> 
> Cuentos Infantiles
> Cenicienta
> 25.00
> 
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Felices fiestas a todos los pythónic os

2010-12-21 Por tema Nekmo
La Ley Sinde ha sido rechazada. ¡Claro que vamos a entrar bien! :)

Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: conta...@nekmo.com
XMPP/Jabber: ne...@jabberes.org
Identi.ca: http://identi.ca/nekmo


El 21 de diciembre de 2010 23:24, Ángel Luis García García <
alg...@telefonica.net> escribió:

> Hola. Os deseo lo mejor para todos. Felices navidades y que entréis bien el
> año 2011.
>
> ¡Gracias por vuestra ayuda!
>
> Un cordial saludo.
>
> Ángel Luis García García
> http://elviajedelnavegante.blogspot.com
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/