Re: [Python-es] librería para usar la API de icinga2

2023-11-10 Por tema Jose Caballero
Muchas gracias !!!

El vie, 10 nov 2023 a las 10:39, Robert () escribió:
>
> Buen día José , en la página de icinga2 api clients está lo que necesitas:
>
> https://icinga.com/docs/icinga-2/latest/doc/12-icinga2-api/#api-clients
>
>
> En github hay un fork:
>
> "python-icinga2-api-continued"
>
> de la librería qué indicas y está más actualizada e incluye el parámetro:  
> "all_services" para el método
>
> Client.actions.schedule_downtime( )
>
>
> https://github.com/TeraIT-at/icinga2apic
>
>
>
> Saludos
>
> Robert.
>
>
>
> El vie., 10 nov. 2023 05:54, Jose Caballero  
> escribió:
>>
>> Hola,
>>
>>
>> Estoy buscando una librería para poder interactuar con Icinga2 a
>> través de su API REST.
>> La principal opción que google da es ésta:
>>
>> https://github.com/fmnisme/python-icinga2api
>>
>> Pero parece que no se ha actualizado desde hace varios años.
>> No sé si esa es la razón por la que, por ejemplo, no tiene una
>> variable "all_services" para el método
>>
>> Client.actions.schedule_downtime( )
>>
>> O yo no sé cómo hacerlo.
>> ¿Alguien en esta lista conoce una librería más reciente para trabajar
>> con Icinga2, o sabe como pasar "all_services" usando la que he
>> mencionado?
>>
>>
>>
>> Un saludo, y muchas gracias por adelantado.
>> Jose
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] librería para usar la API de icinga2

2023-11-10 Por tema Jose Caballero
Hola,


Estoy buscando una librería para poder interactuar con Icinga2 a
través de su API REST.
La principal opción que google da es ésta:

https://github.com/fmnisme/python-icinga2api

Pero parece que no se ha actualizado desde hace varios años.
No sé si esa es la razón por la que, por ejemplo, no tiene una
variable "all_services" para el método

Client.actions.schedule_downtime( )

O yo no sé cómo hacerlo.
¿Alguien en esta lista conoce una librería más reciente para trabajar
con Icinga2, o sabe como pasar "all_services" usando la que he
mencionado?



Un saludo, y muchas gracias por adelantado.
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] ¿UML a python?

2023-06-24 Por tema Jose Caballero
Hola,

He intentado un par de búsquedas en google, pero no encuentro nada.
¿Alguien conoce alguna herramienta que convierta UML (plantUML, mermaid,
etc) a python?

Un saludo,
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] Se aceptan contribuciones

2023-03-25 Por tema Jose Caballero
Hola,


Hace años, para mi anterior trabajo, escribí una librería para manipular
datos, si estos estaban representados como listas de objetos.
La idea básica era poder crear diccionarios anidados sin tener que
implementar los correspondientes

   for k1,v1 in data.items():
  for k2,v2 in v1.items():
   for k2,v3 in v2.items():
etc

Siempre me fastidió tener que hacer eso. Sobre todo cuando hay que cambiar
el orden, añadir o eliminar un diccionario, y toda la estructura de
indentación se va al carajo.

Luego acabé añadiendo algunas funcionalidades más: filter(), map(),
reduce(), transform(), process().

Lo acabo de subir a GITHUB:

  https://github.com/jose-caballero/manipulator

Lo que nunca implementé de manera apropiada, como parte de la librería, es
una forma correcta de visualización.
Acabé escribiendo (en plan quick & dirty solution) una función display(),
fuera de las clases.

Me gustaría que la visualización estuviese integrada como métodos de las
clases. De forma que se pudiese hacer simplemente

 data.display()

Por desgracia, no tengo tiempo. No creo que sea muy complicado, intuyo que
sería de forma similar a los métodos getraw().
Pero como hace 3 o 4 años que ya no me dedico a la programación, creo que
he perdido las pocas habilidades que tenía con python.

Si alguien se atreve con mi código horrible (ya os lo aviso por adelantado)
y es capaz de implementar los métodos display(), que ponga su nombre/email
como colaborador y haga un Pull Request.


Muchas gracias.
Un saludo,
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] todos los subdirectorios

2023-01-31 Por tema Jose Caballero
Parece que PurePath.parents es lo que necesito.
Muchas gracias.

Saludos.

El mar, 31 ene 2023 a las 15:48,  escribió:
>
> Para hacer lo que dices, yo dividiría la ruta en partes, y después iría 
> concatenándolas:
>
> https://docs.python.org/3/library/pathlib.html#pathlib.PurePath.parts
>
> En todo caso, creo que pathlib es la librería que estás buscando.
>
> Jose Caballero  writes:
>
> > No creo. listdir() devuelve en contenido del directorio.
> >
> > El mar, 31 ene 2023 a las 15:13, Nippur Lagash () 
> > escribió:
> >>
> >> Buen día, algo así te podría servir ?
> >>
> >> import os
> >>
> >> rootdir = 'path/to/dir'
> >> for file in os.listdir(rootdir):
> >> d = os.path.join(rootdir, file)
> >>     if os.path.isdir(d):
> >> print(d)
> >>
> >> Saludos,
> >> Fer.MDQ
> >>
> >> El mar, 31 ene 2023 a las 11:57, Jose Caballero 
> >> () escribió:
> >>>
> >>> Hola,
> >>>
> >>> Dado un directorio, por ejemplo:
> >>> "/este/es/mi/directorio/"
> >>> necesito obtener una lista con todos los subdirectorios, por orden 
> >>> creciente:
> >>>[ "/este/", "/este/es/", "/este/es/mi/", 
> >>> "/este/es/mi/directorio/"]
> >>>
> >>> Antes de ponerme a escribir una función que lo haga, me preguntaba si
> >>> existe alguna en la librería estándar que pueda usar.
> >>>
> >>> Pero no sé ni como buscarlo en google. No encuentro las palabras clave
> >>> para la búsqueda que no me den resultados sobre otros temas.
> >>>
> >>> Cualquier ayuda es más que bienvenida.
> >>>
> >>> Muchas gracias por adelantado.
> >>> Un saludo,
> >>> Jose
> >>> ___
> >>> Python-es mailing list
> >>> Python-es@python.org
> >>> https://mail.python.org/mailman/listinfo/python-es
> >>
> >>
> >>
> >> --
> >> Nippur
> >> Mar del Plata
> >> Buenos Aires
> >> Argentina
> >> https://mozit.com.ar
> >> ___
> >> Python-es mailing list
> >> Python-es@python.org
> >> https://mail.python.org/mailman/listinfo/python-es
> > ___
> > Python-es mailing list
> > Python-es@python.org
> > https://mail.python.org/mailman/listinfo/python-es
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] todos los subdirectorios

2023-01-31 Por tema Jose Caballero
No creo. listdir() devuelve en contenido del directorio.

El mar, 31 ene 2023 a las 15:13, Nippur Lagash () escribió:
>
> Buen día, algo así te podría servir ?
>
> import os
>
> rootdir = 'path/to/dir'
> for file in os.listdir(rootdir):
> d = os.path.join(rootdir, file)
> if os.path.isdir(d):
> print(d)
>
> Saludos,
> Fer.MDQ
>
> El mar, 31 ene 2023 a las 11:57, Jose Caballero () 
> escribió:
>>
>> Hola,
>>
>> Dado un directorio, por ejemplo:
>> "/este/es/mi/directorio/"
>> necesito obtener una lista con todos los subdirectorios, por orden creciente:
>>[ "/este/", "/este/es/", "/este/es/mi/", 
>> "/este/es/mi/directorio/"]
>>
>> Antes de ponerme a escribir una función que lo haga, me preguntaba si
>> existe alguna en la librería estándar que pueda usar.
>>
>> Pero no sé ni como buscarlo en google. No encuentro las palabras clave
>> para la búsqueda que no me den resultados sobre otros temas.
>>
>> Cualquier ayuda es más que bienvenida.
>>
>> Muchas gracias por adelantado.
>> Un saludo,
>> Jose
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>
>
>
> --
> Nippur
> Mar del Plata
> Buenos Aires
> Argentina
> https://mozit.com.ar
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] todos los subdirectorios

2023-01-31 Por tema Jose Caballero
Hola,

Dado un directorio, por ejemplo:
"/este/es/mi/directorio/"
necesito obtener una lista con todos los subdirectorios, por orden creciente:
   [ "/este/", "/este/es/", "/este/es/mi/", "/este/es/mi/directorio/"]

Antes de ponerme a escribir una función que lo haga, me preguntaba si
existe alguna en la librería estándar que pueda usar.

Pero no sé ni como buscarlo en google. No encuentro las palabras clave
para la búsqueda que no me den resultados sobre otros temas.

Cualquier ayuda es más que bienvenida.

Muchas gracias por adelantado.
Un saludo,
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] conversión de hora local a UTC

2021-11-23 Por tema Jose Caballero
El mié, 17 nov 2021 a las 15:12, Chema Cortes () escribió:
>
>
>
> El mié, 17 nov 2021 a las 12:25, Juan Carlos Coruña () 
> escribió:
>>
>> Una de las formas que se ocurre es esta:
>>
>> from datetime import datetime
>> from dateutil.relativedelta import relativedelta
>>
>> import pytz
>>
>> # tomamos un datetime arbitrario
>> now = datetime.now(tz=pytz.timezone('Europe/Madrid'))
>>
>> next_monday = now + relativedelta(weekday=0)
>> next_monday = next_monday.replace(hour=12, minute=30, second=0, 
>> microsecond=0)
>>
>> next_monday.astimezone(tz=pytz.UTC)
>>
>> Pero hay más variantes.
>>
>
> Con dateutil no necesitas usar pytz:
>
> from datetime import datetime
> from dateutil.relativedelta import relativedelta
> from dateutil import tz
>
> # tomamos un datetime arbitrario
> now = datetime.now(tz=tz.gettz('Europe/Madrid'))
>
> next_monday = now + relativedelta(weekday=0)
> next_monday = next_monday.replace(hour=12, minute=30, second=0, microsecond=0)
>
> next_monday.astimezone(tz=tz.UTC)
>
>

Hola,

La opción de Chema me da error. Es posible que no sirva para python 2.7

>>> from dateutil import tz
>>> dir(tz)
['EPOCHORDINAL', 'TZFILES', 'TZPATHS', 'ZERO', '__all__',
'__author__', '__builtins__', '__doc__', '__file__', '__license__',
'__name__', '__package__', '_ttinfo', '_tzicalvtz', '_tzicalvtzcomp',
'datetime', 'gettz', 'os', 'parser', 'relativedelta', 'rrule',
'struct', 'sys', 'time', 'tzfile', 'tzical', 'tzlocal', 'tzoffset',
'tzrange', 'tzstr', 'tzutc', 'tzwin', 'tzwinlocal']

La opción de Juan Carlos sí parece funcionar bien.

Muchas gracias a ambos.
Un saludo,
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] conversión de hora local a UTC

2021-11-17 Por tema Jose Caballero
Muchas gracias. Lo voy a probar.

Un saludo,
Jose

El mié, 17 nov 2021 a las 11:25, Juan Carlos Coruña
() escribió:
>
> Una de las formas que se ocurre es esta:
>
> from datetime import datetime
> from dateutil.relativedelta import relativedelta
>
> import pytz
>
> # tomamos un datetime arbitrario
> now = datetime.now(tz=pytz.timezone('Europe/Madrid'))
>
> next_monday = now + relativedelta(weekday=0)
> next_monday = next_monday.replace(hour=12, minute=30, second=0, microsecond=0)
>
> next_monday.astimezone(tz=pytz.UTC)
>
> Pero hay más variantes.
>
>
> El mié, 17 nov 2021 a las 12:10, Jose Caballero () 
> escribió:
>>
>> Hola,
>>
>> Estoy convencido de que no es difícil, pero no encuentro una forma
>> sencilla de hacerlo :)
>>
>> python 2.7
>>
>> Siendo hoy un día arbitrario de la semana, necesito saber qué hora
>> será en UTC las 12:30 hora local del próximo lunes.
>> Nótese que entre hoy y el próximo lunes puede haber cambio horario, o
>> sea que no vale con calcular la diferencia entre hora local y UTC
>> actual.
>>
>> ¿Alguna sugerencia?
>>
>> Muchas gracias por adelantado.
>> Saludos,
>> Jose
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>
>
>
> --
> Juan Carlos Coruña: Python, Zope, Plone, Navision.
> http://oggers-blog.blogspot.com
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] conversión de hora local a UTC

2021-11-17 Por tema Jose Caballero
Hola,

Estoy convencido de que no es difícil, pero no encuentro una forma
sencilla de hacerlo :)

python 2.7

Siendo hoy un día arbitrario de la semana, necesito saber qué hora
será en UTC las 12:30 hora local del próximo lunes.
Nótese que entre hoy y el próximo lunes puede haber cambio horario, o
sea que no vale con calcular la diferencia entre hora local y UTC
actual.

¿Alguna sugerencia?

Muchas gracias por adelantado.
Saludos,
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] "unfold" listas de nombres

2021-03-22 Por tema Jose Caballero
En efecto, "brace expansion" suena mejor. Eso es lo que busco, imitar
(y ampliar) lo que hace bash.
Muchas gracias,

Jose

El lun, 22 mar 2021 a las 9:08, Chema Cortes () escribió:
>
> Supongo que lo que buscas es imitar la "brace expansion" (expansión de 
> llaves) que hace bash (lo de unfold lo dejaría más para tratamiento de 
> streams).
>
> Si no vas a usar nada complicado, te lo puedes programar tú mismo usando 
> expresiones regulares. Si quieres algo hecho, mírate el módulo braceexpand:
>
> https://pypi.org/project/braceexpand/
>
> Saludos.
>
> El dom, 21 mar 2021 a las 10:56, Jose Caballero () 
> escribió:
>>
>> Hola,
>>
>> perdón por un título tan poco descriptivo. Es parte de mi problema, no
>> sé cómo explicarlo, y por tanto no se me ocurre cómo buscarlo en
>> google. Seguro que alguien ya lo ha hecho antes, pero no acabo de
>> encontrar las palabras claves (key words) para hacer una búsqueda
>> eficiente en google :)
>>
>> Si alguien sabe de alguna web donde esté resuelto y me lo puede
>> indicar, antes de que yo pierda el tiempo intentando hacerlo con una
>> implementación mediocre, me ahorraría mucho tiempo.
>>
>> Necesito convertir una "string" como ésta:
>>
>> foo_{01,03,06}_bar
>>
>> en:
>>
>> foo_01_bar
>> foo_03_bar
>> foo_06_bar
>>
>> y una "string" como la siguiente:
>>
>> foo_{01..06}_bar
>>
>> en:
>>
>> foo_01_bar
>> foo_02_bar
>> foo_03_bar
>> foo_04_bar
>> foo_05_bar
>> foo_06_bar
>>
>> Cualquier ayuda es más que bienvenida.
>> Un saludo,
>> Jose
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>
>
>
> --
> Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales": 
> https://blog.ch3m4.org
> Buscador Python Hispano: http://busca.ch3m4.org
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] "unfold" listas de nombres

2021-03-22 Por tema Jose Caballero
gracias a todos por los comentarios !!

El dom, 21 mar 2021 a las 16:34, Javier Perez
() escribió:
>
> Para la primera parte se me ocurre que saques lo que esta entre llaves y 
> después lo separes automáticamente por las comas “,”. Ya, por último lo 
> construyes.
>
>
>
>
>
> Saludos,
>
> --
> Javier Pérez
> http://es.linkedin.com/in/javierperez1
> http://www.perasalvino.es/
>
>
>
>
> El 21 mar 2021, a las 10:55, Jose Caballero  
> escribió:
>
> Hola,
>
> perdón por un título tan poco descriptivo. Es parte de mi problema, no
> sé cómo explicarlo, y por tanto no se me ocurre cómo buscarlo en
> google. Seguro que alguien ya lo ha hecho antes, pero no acabo de
> encontrar las palabras claves (key words) para hacer una búsqueda
> eficiente en google :)
>
> Si alguien sabe de alguna web donde esté resuelto y me lo puede
> indicar, antes de que yo pierda el tiempo intentando hacerlo con una
> implementación mediocre, me ahorraría mucho tiempo.
>
> Necesito convertir una "string" como ésta:
>
>foo_{01,03,06}_bar
>
> en:
>
>foo_01_bar
>foo_03_bar
>foo_06_bar
>
> y una "string" como la siguiente:
>
>foo_{01..06}_bar
>
> en:
>
>foo_01_bar
>foo_02_bar
>foo_03_bar
>foo_04_bar
>foo_05_bar
>foo_06_bar
>
> Cualquier ayuda es más que bienvenida.
> Un saludo,
> Jose
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] "unfold" listas de nombres

2021-03-21 Por tema Jose Caballero
Hola,

perdón por un título tan poco descriptivo. Es parte de mi problema, no
sé cómo explicarlo, y por tanto no se me ocurre cómo buscarlo en
google. Seguro que alguien ya lo ha hecho antes, pero no acabo de
encontrar las palabras claves (key words) para hacer una búsqueda
eficiente en google :)

Si alguien sabe de alguna web donde esté resuelto y me lo puede
indicar, antes de que yo pierda el tiempo intentando hacerlo con una
implementación mediocre, me ahorraría mucho tiempo.

Necesito convertir una "string" como ésta:

foo_{01,03,06}_bar

en:

foo_01_bar
foo_03_bar
foo_06_bar

y una "string" como la siguiente:

foo_{01..06}_bar

en:

foo_01_bar
foo_02_bar
foo_03_bar
foo_04_bar
foo_05_bar
foo_06_bar

Cualquier ayuda es más que bienvenida.
Un saludo,
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] Tertulia Python: hoy martes a las 19:30-20:30

2020-11-24 Por tema Jose Caballero
Por curiosidad, ¿de que se habló la semana pasada?

Jose

El mar., 24 nov. 2020 a las 13:26, Jesus Cea () escribió:
>
> Nueva convocatoria de tertulia Python en español esta tarde, de 19:30 a
> 20:30, zona horaria de Madrid. La sesión de la semana pasada estuvo muy
> bien, a ver si mantenemos el nivel.
>
> La reunión será en jitsi:
>
> https://meet.jit.si/py2020
>
> Hay aplicación para Android e iOS. La sala es "py2020".
>
> En este momento la sala está bloqueada con clave, que retiraré unos
> minutos antes de las 19:30.
>
> Os pediría que entreis con vídeo aunque tengais el audio silenciado,
> porque hablar mirando solo recuadros negros en la pantalla resulta
> desconcertante y un tanto molesto.
>
> Esta vez intentaré grabar el audio (*NO* se grabará el vídeo) para una
> posible emisión en podcast. Sobreentiendo que quien participe da su
> conformidad a la redifusión posterior.
>
> ¡Nos vemos en un rato!
>
> --
> Jesús Cea Avión _/_/  _/_/_/_/_/_/
> j...@jcea.es - https://www.jcea.es/_/_/_/_/  _/_/_/_/  _/_/
> Twitter: @jcea_/_/_/_/  _/_/_/_/_/
> 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
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] cadenas multilinea en librería "cmd"

2020-09-17 Por tema Jose Caballero
Hola,

estoy haciendo mis primeros intentos con la librería cmd (1).
Mi problema lo tengo cuando el argumento que quiero pasar a unos de
los comandos es una cadena de varias líneas. Lo he intentado con "\n",
pero lo interpreta literalmente (2).

¿Cómo puedo forzar a que interprete el carácter the salto de línea?

Muchas gracias por adelantado.
Un saludo,
Jose


(1) https://docs.python.org/3/library/cmd.html

(2)

código:

 def do_test(self, inp):
 s = inp
 print(s)

ejemplo:

 ~ $ myapp
 Welcome! Type ? to list commands
 myapp>
 myapp> test this is\na text with\nthree lines
 this is\na text with\nthree lines
 myapp>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] ROOT CA certficate

2020-08-22 Por tema Jose Caballero
AFK, ¿esos directorios existen en Mac?

> On Aug 21, 2020, at 4:28 PM, Nippur Lagash  wrote:
> 
> Hola, ese certificato que bajaste lo tiene que poner en 
> /usr/share/ca-certificates/
> Luego editar el /etc/ca-certificates.conf y agregar al final:
> /
> Luego ejecutas:
> update-ca-certificates --fresh
> 
> Espero te sirva, saludos!
> 
> 
>> El vie., 21 ago. 2020 a las 10:48, Jose Caballero 
>> () escribió:
>> Hola,
>> 
>> Primero, contexto [1].
>> 
>> Estoy intentando usar este cliente https://pypi.org/project/rt/ para
>> interactuar con el sistema de tickets RT de nuestro curro. Por lo que
>> veo en el código, y los mensajes de error, usa la librería requests.
>> 
>> Si no hago nada especial, SSL falla, como era de esperar [2].
>> 
>> Puedo evitarlo con el truco sucio [3].
>> Pero no me gusta. Además, con cada acción me escupe mensajes de WARNING.
>> 
>> Me he bajado el certificado de la Autoridad Certificadora que hay
>> instalado en el servidor RT.
>> Pero ahora no tengo claro cómo hacer que la librería requests lo encuentre.
>> He googleado un poco, y he probado con variables de entorno
>> REQUESTS_CA_BUNDLE y SSL_CERT_DIR, pero no ha habido suerte.
>> Veo en google demasiadas alternativas, no tengo claro si alguna de
>> ellas es obsoleta, o no estoy entendiendo lo que leo...
>> 
>> Si alguien me puede dar alguna pista, estaría eternamente agradecido.
>> 
>> Muchas gracias por adelantado.
>> Saludos,
>> Jose
>> 
>> ===
>> [1]
>> 
>> $ uname -a
>> Darwin vpn-3-078.rl.ac.uk 18.7.0 Darwin Kernel Version 18.7.0: Sun Dec
>>  1 18:59:03 PST 2019; root:xnu-4903.278.19~1/RELEASE_X86_64 x86_64
>> 
>> $ python -V
>> Python 2.7.16
>> 
>> [2]
>> >>> import rt
>> >>> t = rt.Rt('https://my.rt.server/REST/1.0/', 'username', 'pass')
>> >>> t.login()
>> Traceback (most recent call last):
>>   File "", line 1, in 
>>   File "/Library/Python/2.7/site-packages/rt.py", line 374, in login
>> without_login=True)) == 200
>>   File "/Library/Python/2.7/site-packages/rt.py", line 299, in __request
>> raise ConnectionError("Connection error", e)
>> rt.ConnectionError: Connection error (Caused by
>> SSLError(MaxRetryError("HTTPSConnectionPool(host='my.rt.server',
>> port=443): Max retries exceeded with url: /REST/1.0/ (Caused by
>> SSLError(SSLError(0, u'unknown error (_ssl.c:3063)'),))",),))
>> 
>> 
>> [3]
>> >>> t = rt.Rt('https://my.rt.server/REST/1.0/', 'username', 'pass', 
>> >>> verify_cert=False)
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
> 
> 
> -- 
> Nippur
> Mar del Plata
> Buenos Aires
> Argentina
> https://mozit.com.ar
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] ROOT CA certficate

2020-08-21 Por tema Jose Caballero
Hola,

Primero, contexto [1].

Estoy intentando usar este cliente https://pypi.org/project/rt/ para
interactuar con el sistema de tickets RT de nuestro curro. Por lo que
veo en el código, y los mensajes de error, usa la librería requests.

Si no hago nada especial, SSL falla, como era de esperar [2].

Puedo evitarlo con el truco sucio [3].
Pero no me gusta. Además, con cada acción me escupe mensajes de WARNING.

Me he bajado el certificado de la Autoridad Certificadora que hay
instalado en el servidor RT.
Pero ahora no tengo claro cómo hacer que la librería requests lo encuentre.
He googleado un poco, y he probado con variables de entorno
REQUESTS_CA_BUNDLE y SSL_CERT_DIR, pero no ha habido suerte.
Veo en google demasiadas alternativas, no tengo claro si alguna de
ellas es obsoleta, o no estoy entendiendo lo que leo...

Si alguien me puede dar alguna pista, estaría eternamente agradecido.

Muchas gracias por adelantado.
Saludos,
Jose

===
[1]

$ uname -a
Darwin vpn-3-078.rl.ac.uk 18.7.0 Darwin Kernel Version 18.7.0: Sun Dec
 1 18:59:03 PST 2019; root:xnu-4903.278.19~1/RELEASE_X86_64 x86_64

$ python -V
Python 2.7.16

[2]
>>> import rt
>>> t = rt.Rt('https://my.rt.server/REST/1.0/', 'username', 'pass')
>>> t.login()
Traceback (most recent call last):
  File "", line 1, in 
  File "/Library/Python/2.7/site-packages/rt.py", line 374, in login
without_login=True)) == 200
  File "/Library/Python/2.7/site-packages/rt.py", line 299, in __request
raise ConnectionError("Connection error", e)
rt.ConnectionError: Connection error (Caused by
SSLError(MaxRetryError("HTTPSConnectionPool(host='my.rt.server',
port=443): Max retries exceeded with url: /REST/1.0/ (Caused by
SSLError(SSLError(0, u'unknown error (_ssl.c:3063)'),))",),))


[3]
>>> t = rt.Rt('https://my.rt.server/REST/1.0/', 'username', 'pass', 
>>> verify_cert=False)
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] problema con "regular expression"

2020-08-18 Por tema Jose Caballero
Muchas gracias a todos por los comentarios y las sugerencias.

Un saludo,
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] problema con "regular expression"

2020-08-17 Por tema Jose Caballero
no parece:

>>> p = re.compile("^(?P(.*)):? (?P([^:]*))$")
>>>
>>> l = "type: word: foo bar"
>>>
>>> m = p.match(l)
>>> print m.groupdict()
{'type': 'type: word: foo', 'value': 'bar'}
>>>

Pero voy a echar un vistazo a "greedy".
Muchas gracias.

Jose

El lun., 17 ago. 2020 a las 15:25, Ander Garmendia
() escribió:
>
> Hola,
>
> Las expresiones tipo(. *) son "greedy", esto es se expanden "a todo lo que 
> pillen". Si quieres limitar el match al primer grupo, añade un ? al carácter 
> de corte:
>
>  pattern = re.compile("^(?P(.*)):? (?P([^:]*))$")
>
> Si buscas "greedy" en el apartado de la librería "re" en la documentacion 
> oficial, lo explican mucho mejor.
>
> Un saludo.
>
> Jose Caballero  igorleak hau idatzi zuen (2020 abu. 
> 17, al. 15:45):
>>
>> Hola,
>>
>> tengo una serie de lineas, todas con el mismo formato:
>>
>> : 
>>
>> donde  es una sola palabra, y  es una frase.
>> Intentaba "parsearlas" con algo como esto:
>>
>> pattern = re.compile("^(?P(.*)): (?P(.*))$")
>> parse = pattern.match(line)
>> groups = parse.groupdict()
>> print( groups["type"] )
>> print( groups["value"] )
>>
>> Funciona bien, salvo que  incluya el signo de los dos puntos.
>> Por ejemplo, para
>>
>>  one: two: three four
>>
>> Me devuelve type = "one: two" y value "three four", en lugar de "one"
>> y "two: three four" respectivamente.
>>
>> ?Como arreglo ese pattern para que el primer "lookahead" pare en el primer 
>> ":"?
>> [Creo que se nota que tengo poca experiencia con regex]
>>
>> Muchas gracias.
>> Un saludo,
>> Jose
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] problema con "regular expression"

2020-08-17 Por tema Jose Caballero
Hola,

tengo una serie de lineas, todas con el mismo formato:

: 

donde  es una sola palabra, y  es una frase.
Intentaba "parsearlas" con algo como esto:

pattern = re.compile("^(?P(.*)): (?P(.*))$")
parse = pattern.match(line)
groups = parse.groupdict()
print( groups["type"] )
print( groups["value"] )

Funciona bien, salvo que  incluya el signo de los dos puntos.
Por ejemplo, para

 one: two: three four

Me devuelve type = "one: two" y value "three four", en lugar de "one"
y "two: three four" respectivamente.

?Como arreglo ese pattern para que el primer "lookahead" pare en el primer ":"?
[Creo que se nota que tengo poca experiencia con regex]

Muchas gracias.
Un saludo,
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] ¿Alguien tiene experiencia con librerías para ¨RT tickets¨?

2020-01-16 Por tema Jose Caballero
Gracias, le echaré una ojeada.
Un ejemplo de lo que quiero hacer: para cada cola, calcular el valor medio del 
tiempo que se tardó en resolver cada ticket en el mes anterior. Por ejemplo...

> On Jan 16, 2020, at 2:15 PM, Alan Cybar  wrote:
> 
> Buen día,
> 
> Deberías de ver la documentación del RT, por lo que ví soporta Networked Help 
> Desk API.[7] que es un  API estándar de interacción con otros sistemas.
> 
> En realidad no lo había probado con RT, pero sí con el OTRS y funciona sin 
> problemas.
> 
> Saludos
> 
>> El jue., 16 ene. 2020 a las 10:59, Jose Caballero 
>> () escribió:
>> Hmm, no veo claro que sea lo que ando buscando.
>> Supongo que no me he explicado con claridad. Mis disculpas.
>> El sistema de tickets ya existe. Tenemos el standard
>> https://en.wikipedia.org/wiki/Request_Tracker
>> Busco una libreria para leer los tickets, no un sistema entero :)
>> 
>> Jose
>> 
>> El jue., 16 ene. 2020 a las 13:48, Mario R. Osorio
>> () escribió:
>> >
>> > En alguna ocasión probé varios y el que mejor se adaptaba a mis 
>> > necesidades fue django-helpdesk 
>> > [https://github.com/django-helpdesk/django-helpdesk] . La documentación es 
>> > muy buena, aunque no completa.
>> >
>> > Dtb/Gby
>> > ===
>> > Mario R. Osorio
>> > Just Choose Python!
>> >
>> > SQL programmers don't die, they just ROLLBACK the TRANSACTION.
>> >
>> >
>> >
>> >
>> > On Thu, Jan 16, 2020 at 5:00 AM Jose Caballero  
>> > wrote:
>> >>
>> >> Hola,
>> >>
>> >> quizás me interese hacer uso de alguna librería para interactuar
>> >> (básicamente leer) con el sistema de tickets RT en nuestro curro.
>> >> Veo en google que hay varias opciones.
>> >> Antes de ponerme a probarlas una por una, si alguien tiene experiencia
>> >> con alguna de ellas y desea compartirla, cualquier comentario será más
>> >> que bienvenido.
>> >>
>> >> Muchas gracias.
>> >> Saludos,
>> >> Jose
>> >> ___
>> >> Python-es mailing list
>> >> Python-es@python.org
>> >> https://mail.python.org/mailman/listinfo/python-es
>> >
>> > ___
>> > Python-es mailing list
>> > Python-es@python.org
>> > https://mail.python.org/mailman/listinfo/python-es
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] ¿Alguien tiene experiencia con librerías para ¨RT tickets¨?

2020-01-16 Por tema Jose Caballero
no hay problema. Mea culpa.

El jue., 16 ene. 2020 a las 14:24, Mario R. Osorio
() escribió:
>
> Disculpa, no lei tu mensaje correctamente
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] ¿Alguien tiene experiencia con librerías para ¨RT tickets¨?

2020-01-16 Por tema Jose Caballero
Hmm, no veo claro que sea lo que ando buscando.
Supongo que no me he explicado con claridad. Mis disculpas.
El sistema de tickets ya existe. Tenemos el standard
https://en.wikipedia.org/wiki/Request_Tracker
Busco una libreria para leer los tickets, no un sistema entero :)

Jose

El jue., 16 ene. 2020 a las 13:48, Mario R. Osorio
() escribió:
>
> En alguna ocasión probé varios y el que mejor se adaptaba a mis necesidades 
> fue django-helpdesk [https://github.com/django-helpdesk/django-helpdesk] . La 
> documentación es muy buena, aunque no completa.
>
> Dtb/Gby
> ===
> Mario R. Osorio
> Just Choose Python!
>
> SQL programmers don't die, they just ROLLBACK the TRANSACTION.
>
>
>
>
> On Thu, Jan 16, 2020 at 5:00 AM Jose Caballero  
> wrote:
>>
>> Hola,
>>
>> quizás me interese hacer uso de alguna librería para interactuar
>> (básicamente leer) con el sistema de tickets RT en nuestro curro.
>> Veo en google que hay varias opciones.
>> Antes de ponerme a probarlas una por una, si alguien tiene experiencia
>> con alguna de ellas y desea compartirla, cualquier comentario será más
>> que bienvenido.
>>
>> Muchas gracias.
>> Saludos,
>> Jose
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] ¿Alguien tiene experiencia con librerías para ¨RT tickets¨?

2020-01-16 Por tema Jose Caballero
Hola,

quizás me interese hacer uso de alguna librería para interactuar
(básicamente leer) con el sistema de tickets RT en nuestro curro.
Veo en google que hay varias opciones.
Antes de ponerme a probarlas una por una, si alguien tiene experiencia
con alguna de ellas y desea compartirla, cualquier comentario será más
que bienvenido.

Muchas gracias.
Saludos,
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] ¿Cómo generar una distribución aleatoria?

2019-07-07 Por tema Jose Caballero
Muchas gracias a todos por los comentarios, soluciones, etc.
Se las voy traduciendo a mi colega (no habla ni una palabra de español) y se 
las voy pasando.
Y de paso yo también estoy aprendiendo bastante.

Por cierto, por motivos que no vienen al caso, en el curro estamos atascados 
con python2.7 hasta que nuestro centro de trabajo renueve el contrato con 
RedHat para EL 8.
O sea que aún no he necesitado aprender python3. Viendo el código de Chema...
¿Ahora hay que declarar los tipos? ¿Han convertido python en C++? En fin, 
parece que tendré que investigarlo.

Muchas gracias por todo.
Un saludo,
Jose

___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] ¿Cómo generar una distribución aleatoria?

2019-07-03 Por tema Jose Caballero
Hmmm. Seguro?
Imagino que una funcion que genera numeros aleatorios debe producir
una distribucion plana (si ese es el requisito) cuando se la llama N
veces, sin argumentos.
En este caso, la implementacion real seria

def randint_1_7( ):
l = (1, 2, 3, 4, 5, 6, 7)
seed = randint(1,5) + randint(1,5)
seed = seed % 7
return l[seed - 1]

No?
Produce eso una distribucion plana?





El mié., 3 jul. 2019 a las 12:06, Mario R. Osorio
() escribió:
>
> Muy interesante la solución de Javi (Que demuestra tener una distribución 
> plana), sin embargo me permito presentar la mía para su consideración:
>
> """
>  Solucion para:
> generar una distribución plana de enteros aleatorios, del 1 al 7, usando 
> únicamente random.randint(1,5)
> como funcion generadora de enteros aleatorios
> """
>
> from random import randint
>
> def randint_1_7(seed=None):
> l = (1, 2, 3, 4, 5, 6, 7)
>
> if seed is None:
> seed = randint(1,5) + randint(1,5)
> else:
> seed += randint(1,5)
>
> seed = seed % 7
>
> return (l[seed - 1], seed)
>
>
> if __name__ == "__main__":
> """
> se demuestra que la distribucion es plana,
> pero la PRUEBA matematica se la dejo a otro...
>
> """
>
> d = {}
> k, seed = randint_1_7()
>
> for n in range(10):
> k, seed = randint_1_7(seed)
> if k in d:
> d[k] += 1
> else:
> d[k] = 1
>
> print(d)
>
>
>
>
> On Tue, Jul 2, 2019 at 10:10 PM lasizoillo  wrote:
>>
>> Buenas,
>>
>> Lo primero sería acotar cual es realmente el problema. En una entrevista de 
>> trabajo alguien tiene que desentrañar si eres apto o no para un puesto y esa 
>> aptitud puede tener varias facetas:
>> - Eres capaz de poner en duda los requisitos y plantear alternativas mejores 
>> para la empresa
>> - Eres capaz de resolver problemas lógicos
>> - Ante un problema que muy posiblemente no sabes por dónde cogerlo... ¿cómo 
>> vas a reaccionar? te enfadarás, tratarás de colar una solución erronea, 
>> asumirás que no sabes hacer eso pero plantearás estrategias para atacar el 
>> problema, ...
>>
>> Así que lo primero negociaría si realmente no se puede simplificar el 
>> enunciado porque lo que realmente se quiere evaluar el conocimiento técnico 
>> o recursos para atacar este problema. Si les vale ser capaz de poner en duda 
>> requisitos peregrinos eso que me ahorraría. Si quiere una solución técnica 
>> pasaría a atacar el problema, reconociendo que no sé la solución a priori, y 
>> pensaría en voz alta algunas cosas evidentes:
>> - Una sola llamada a la función randint(1,5) no tiene información suficiente 
>> para hacer el equivalente a randint(1,7)
>> - No puedo sumar 7 "tiradas" de randint(1,5) y dividir entre 5 porque la 
>> distribución no sería plana.
>> - Al no ser una potencia de dos no puedo convertir a binario la función 
>> randint(1,5) y codificar los bits del número. Ejemplo 1 y 3 es un 0, 2 y 4 
>> es un 1 y 5 vuelvo a calcular. 2^3=8, por lo que tres bits de tiradas 
>> binarias me darían números del 0 al 7, no del 1 al 7.
>>
>> Ahora diría en alto lo que me parece una solución válida que me ha venido a 
>> la cabeza: lo mismo que con la función randint(1,5) desechaba cuando salía 5 
>> para simular tiradas de cara o cruz, puedo eliminar cuando el resultado de 
>> calcular 3 bits me da un número que equivale a 0. Pensaría si cumple con las 
>> restricciones del enunciado (creo que si) y pasaría a una implementación 
>> rápida.
>>
>> def rand_0_1() -> int:
>>  while True:
>>   num = randint(1, 5)
>>   if num==5:
>>   continue
>>   return num % 2
>>
>> def randint_1_7() -> int:
>>  while True:
>>   num = rand_0_1() * 4 + rand_0_1() * 2 + rand_0_1()
>>   if num:
>>  return num
>>
>> Le comentaría que lo suyo sería hacer una función de test para quedarme 
>> tranquilo con que el resultado es correcto y poder refactorizar en el futuro 
>> si se me ocurre una solución mejor. Escucharía si quiere dejarlo aquí o si 
>> quiere ver la función que haga el test (que no es trivial, pero tampoco 
>> demasiado complicada). Pero la función de test ya se escapa a tu propuesta 
>> ;-)
>>
>> Un saludo,
>>
>> Javi
>>
>>
>> El mié., 3 jul. 2019 a las 1:50, Jose Caballero () 
>> escribió:
>>>
>>> Hola,
>

[Python-es] ¿Cómo generar una distribución aleatoria?

2019-07-02 Por tema Jose Caballero
Hola,

a un colega le han preguntado durante una entrevista de trabajo lo siguiente:
¿cómo generar una distribución plana de enteros aleatorios, del 1 al 7, usando 
únicamente random.randint(1,5)? 
O sea, sin usar ninguna otra función que genere números aleatorios.

Y he pensado en proponer el reto aquí, a ver lo que los miembros de la lista 
sugieren.

Un saludo,
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] copy.deepcopy() falla cuando el objeto a copiar tiene logging

2018-11-28 Por tema Jose Caballero




On Nov 28, 2018, at 3:43, Chema Cortes  wrote:

> 
> 
> El mar., 27 nov. 2018 a las 8:13, Angel Lis () escribió:
> Hola Jose,
> el problema que describes es la razon de por que existe el metodo copy.copy() 
> y copy.deepcopy()
> de la documentacion:
> 
> https://docs.python.org/2.7/library/copy.html
> 
> """
> A shallow copy constructs a new compound object and then (to the extent 
> possible) inserts references into it to the objects found in the original.
> A deep copy constructs a new compound object and then, recursively, inserts 
> copies into it of the objects found in the original.
> 
> """
> 
> Y para el objeto logging:
> 
> https://docs.python.org/2.7/library/logging.html?highlight=logging#thread-safety
> """
> The logging module is intended to be thread-safe without any special work 
> needing to be done by its clients. It achieves this though using threading 
> locks; there is one lock to serialize access to the module’s shared data, and 
> each handler also creates a lock to serialize access to its underlying I/O.
> """
> 
> En este caso, probablemente deberas usar un copy() en vez de deepcopy.
> Espero haberte ayudado.
> 
> 
> El módulo 'logging' usa locks para bloquear los hilos que no es conveniente 
> duplicar, de ahí que saque el error.
> 
> Aún así, se puede aprovechar el funcionamiento que tiene 'deepcopy' para 
> evitar duplicar componentes que ya ha copiado en su intento de replicar toda 
> la estructura de un objeto. Tiene un segundo argumento para pasarle el 
> diccionario con el que "memoizar" los componentes ya duplicados. Si a este 
> argumento añadimos aquellos componentes que no queremos duplicar ya debería 
> funcionar:
> 
> c = C()
> mem = { id(c.log):  c.log }
> x = copy.deepcopy(c)
> 
> id(c) == id(x)  # False
> id(c.log) == id(x.log)  # True
> 
> 
>  

Muchas gracias a los dos.

Un saludo,
Jose___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] copy.deepcopy() falla cuando el objeto a copiar tiene logging

2018-11-26 Por tema Jose Caballero
Hola,

tengo una clase C, a cuyos objetos puedo, en principio, hacer copias
con copy.deepcopy().
Sin embargo, cuando a la clase C le agrego logging en el __init__ [1],
ya no funciona [2].
?No me queda mas remedio que copiar el objeto "manualmente"?
?O existe alguna forma limpia de evitar este problema?

Gracias por adelantado.
Un saludo, y perdon por la falta de tildes.
Jose


[1]
def __init__(self):
  self.log = logging.getLogger()
  logStream = logging.StreamHandler()
  
  self.log.addHandler(logStream)

[2]
 File "/usr/lib64/python2.7/copy.py", line 190, in deepcopy
y = _reconstruct(x, rv, 1, memo)
  File "/usr/lib64/python2.7/copy.py", line 334, in _reconstruct
state = deepcopy(state, memo)
  File "/usr/lib64/python2.7/copy.py", line 163, in deepcopy
y = copier(x, memo)
  File "/usr/lib64/python2.7/copy.py", line 257, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/lib64/python2.7/copy.py", line 190, in deepcopy
y = _reconstruct(x, rv, 1, memo)
  File "/usr/lib64/python2.7/copy.py", line 334, in _reconstruct
state = deepcopy(state, memo)
  File "/usr/lib64/python2.7/copy.py", line 163, in deepcopy
y = copier(x, memo)
  File "/usr/lib64/python2.7/copy.py", line 257, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/lib64/python2.7/copy.py", line 163, in deepcopy
y = copier(x, memo)
  File "/usr/lib64/python2.7/copy.py", line 230, in _deepcopy_list
y.append(deepcopy(a, memo))
  File "/usr/lib64/python2.7/copy.py", line 190, in deepcopy
y = _reconstruct(x, rv, 1, memo)
  File "/usr/lib64/python2.7/copy.py", line 334, in _reconstruct
state = deepcopy(state, memo)
  File "/usr/lib64/python2.7/copy.py", line 163, in deepcopy
y = copier(x, memo)
  File "/usr/lib64/python2.7/copy.py", line 257, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/lib64/python2.7/copy.py", line 190, in deepcopy
y = _reconstruct(x, rv, 1, memo)
  File "/usr/lib64/python2.7/copy.py", line 334, in _reconstruct
state = deepcopy(state, memo)
  File "/usr/lib64/python2.7/copy.py", line 163, in deepcopy
y = copier(x, memo)
  File "/usr/lib64/python2.7/copy.py", line 257, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/lib64/python2.7/copy.py", line 190, in deepcopy
y = _reconstruct(x, rv, 1, memo)
  File "/usr/lib64/python2.7/copy.py", line 329, in _reconstruct
y = callable(*args)
  File "/usr/lib64/python2.7/copy_reg.py", line 93, in __newobj__
return cls.__new__(cls, *args)
TypeError: object.__new__(thread.lock) is not safe, use thread.lock.__new__()
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] convertir timestamp a segundos desde el Epoch

2018-09-27 Por tema Jose Caballero
ah!  Estupendo. Entonces deberia poder hacer

  t = datetime.datetime.strptime(  ,  )
  calendar.timegm(t.timetuple())

Voy a probarlo.
Muchas gracias !!




El día 27 de septiembre de 2018, 17:22, Ricardo Cárdenes
 escribió:
> datetime tiene su propio strptime:
>
>   >>> datetime.strptime(s, "%Y-%m-%dT%H:%M:%S")
>   datetime.datetime(2018, 9, 23, 10, 5, 30)
>
> Saludos
>
> On Thu, Sep 27, 2018 at 11:19 AM Jose Caballero 
> wrote:
>>
>> Hola,
>>
>>
>> me he perdido en el zoo de clases y metodos de las librarias time,
>> datetime, calendar...
>> Mientras sigo investigando, si alguien me puede echar una mano y
>> ahorrarme tiempo, estare eternamente agradecido.
>>
>> Tengo un timestamp con este formato "2018-09-23T10:05:30", y se que es en
>> UTC.
>> Necesito convertirlo a segundos desde el Epoch.
>>
>> Ya se que si hago lo siguiente
>>
>>  d = datetime.datetime(2018, 9, 23, 10, 5, 30)
>>  calendar.timegm(d.timetuple())
>>
>> me da el resultado correcto.
>> Pero me obliga a extraer los valores numericos de la cadena.
>>
>> ?Puedo crear el objeto datetime.datetime() pasando la cadena original
>> y el formato, al estilo strptime()?
>>
>>
>>
>> Muchas gracias por adelantado.
>> Perdon por la ausencia de tildes.
>>
>> Jose
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] convertir timestamp a segundos desde el Epoch

2018-09-27 Por tema Jose Caballero
Hola,


me he perdido en el zoo de clases y metodos de las librarias time,
datetime, calendar...
Mientras sigo investigando, si alguien me puede echar una mano y
ahorrarme tiempo, estare eternamente agradecido.

Tengo un timestamp con este formato "2018-09-23T10:05:30", y se que es en UTC.
Necesito convertirlo a segundos desde el Epoch.

Ya se que si hago lo siguiente

 d = datetime.datetime(2018, 9, 23, 10, 5, 30)
 calendar.timegm(d.timetuple())

me da el resultado correcto.
Pero me obliga a extraer los valores numericos de la cadena.

?Puedo crear el objeto datetime.datetime() pasando la cadena original
y el formato, al estilo strptime()?



Muchas gracias por adelantado.
Perdon por la ausencia de tildes.

Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] implementacion del metodo dict.get()

2018-09-17 Por tema Jose Caballero
Muchas gracias !!

El día 17 de septiembre de 2018, 20:30, Chema Cortes
 escribió:
> https://github.com/python/cpython/blob/dbdee0073cf0b88fe541980ace1f650900f455cc/Objects/dictobject.c#L2743-L2775
>
>
> El lun., 17 sept. 2018 a las 23:15, Jose Caballero
> () escribió:
>>
>> Hola
>>
>> alguien tiene por casualidad un link, o referencia a fichero y linea,
>> donde esta la implementacion del metodo get() de los diccionarios?
>> Tengo curiosidad por ver como esta implementado, pero no me aclaro con
>> el codigo fuente. Hace ya demasiados agnos que no toco C
>> :(
>>
>>
>> Muchas gracias. Y perdon por la ausencia de tildes.
>> Saludos,
>> Jose
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>
>
>
> --
> Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
> https://blog.ch3m4.org
> Buscador Python Hispano: http://busca.ch3m4.org
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] implementacion del metodo dict.get()

2018-09-17 Por tema Jose Caballero
Hola

alguien tiene por casualidad un link, o referencia a fichero y linea,
donde esta la implementacion del metodo get() de los diccionarios?
Tengo curiosidad por ver como esta implementado, pero no me aclaro con
el codigo fuente. Hace ya demasiados agnos que no toco C
:(


Muchas gracias. Y perdon por la ausencia de tildes.
Saludos,
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] ¿Hacer un | en plan bash con Subprocess.Popen?

2018-06-04 Por tema Jose Caballero
>
> Falla y da un error de que:
> convert-im6.q16: unrecognized option `-size8x8' @
>


?te falta un espacio en blanco entre "-size" y "8x8"?
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] pregunta rapida sobre RotatingFileHandler

2018-03-18 Por tema Jose Caballero
>
>
> La pregunta correcta sería si logging es "thread-safe". El sistema de
> logging usa bloqueos para que no haya dos procesos escribiendo a la vez, por
> lo que se puede asegurar que no habrá un hilo escribiendo mientras otro esté
> rotando los handlers.
>
> https://docs.python.org/3.6/library/logging.html#thread-safety
>
>

Muchas gracias !!
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] Obtención de Sumandos para un Target a partir de una colección de valores

2018-02-08 Por tema Jose Caballero
.
>
> Lo que necesito es por ejemplo:
>
> para el ID 1 el target es 100,
>
> entonces ¿cuáles son los números del ID 1 que puedan sumar 100 ?
> 20, 30, 50, 15, 45, 60
> 20 + 30 + 50 = 100
>


En primera aproximaci'on, yo lo intentar'ia con una funci'on recursiva.
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] Un "timeout" usando decoradores me funciona con funciones (no pun intended), pero no con métodos

2017-12-05 Por tema Jose Caballero
> p = multiprocessing.Process(target=f, args=k, kwargs=kw)
>


Pues si, ese metodo funciona con funciones y con metodos
pun intended :)

Muchas gracias.

Ahora me queda encontrar una solucion para mi segundo problema.
Capturar el output de la funcion.

Un saludo, y perdon por la ausencia de tildes.
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] Un "timeout" usando decoradores me funciona con funciones (no pun intended), pero no con métodos

2017-12-04 Por tema Jose Caballero
Hola,

Éste código funciona bien (*).
Consigo pasar un valor de "timeout' como parámetro del decorador, y la
función se aborta si se sobrepasa el límite de tiempo.

Sin embargo, si intento hacer lo mismo con un método en lugar de una
función (**), el valor de "timeout' no parece que se tenga en cuenta
en p.join().
Siempre se ejecuta el método hasta el final.

¿Qué me está faltando?

Bonus question: ¿hay alguna forma de recuperar el output de la función
"funct", si tuviese un return? Con subprocess.Popen() se puede hacer
p.communicate(), pero no veo en la documentación como hacer algo
parecido con multiprocessing.Process()

Muchas gracias por adelantado.
Jose

-

(*)

import multiprocessing
import time


def Timeout(timeout):
def realdecorator(f):
def wrapper(*k, **kw):
p = multiprocessing.Process(target=f(*k, **kw))
p.start()
p.join(timeout)
if p.is_alive():
print('killing')
p.terminate()
p.join()
else:
print('it died already')
return wrapper
return realdecorator


@Timeout(3)
def funct(s):
for i in range(100):
print s
time.sleep(1)


if __name__ == '__main__':
funct('sleeping')

-

(**)


def Timeout(timeout):
def realdecorator(f):
def wrapper(*k, **kw):
p = multiprocessing.Process(target=f(*k, **kw))
p.start()
p.join(timeout)
if p.is_alive():
print('killing')
p.terminate()
p.join()
else:
print('it died already')
return wrapper
return realdecorator


class MyClass(object):

@Timeout(3)
def funct(self, s):
for i in range(100):
print s
time.sleep(1)


if __name__ == '__main__':
o = MyClass()
o.funct("sleeping")
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] Desarrollo de plataforma con multiples librerias.

2017-09-01 Por tema Jose Caballero
El día 1 de septiembre de 2017, 11:34, Nicolas lino
 escribió:
> Buenas.
>
> Estoy encarando un desarrollo extenso, y tengo varias dudas de como manejar
> múltiples librerías en desarrollo.
>
> Dejo un ejemplo para que se entienda bien.
>
> LibA: en desarrollo, constantes cambios.
> LibB: Desarrollo constantes cambios.
>
> Base: este proyecto tendría que tener from LibA import module1, from LibB
> import module3
>
> La idea es desarrollar LibA y LibB, y que Base tome los cambios con solo
> reiniciar.
>
>
> Como se maneja esto con python??
>
> Estuve viendo pip, donde podes importar de un repositorio, pero no me gusta
> la idea de commitear para ver los cambios.
>
>
> Alguien paso por esto?
>
>


Depende mucho del tipo de proyecto, del grupo de desarrolladores, de
la plataforma, etc.
En mi caso, como solo desarrollamos para RedHat, un problema menos:
RPMs y punto.
Normalmente lo que hacemos es distribuir cada libreria con un RPM
separado. Cuando hay un cambio, se instala el nuevo RPM y se
reinicializa todo.

Por otro lado, todo, absolutamente todo, TODO !! debe estar en un
repo. SVN, GITHUB, ... lo que sea.

Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] listar todos los loggers

2017-08-29 Por tema Jose Caballero
Hola,


¿Hay alguna forma de listar todos los loggers que hay ya definidos?
Google me dice

 logging.getLogger.manager.loggerDict

Lo he probado, pero tiene un problema: no parece incluir el "root logger".
¿Cómo se puede averiguar si el root logger ha sido 'instanciado'?


Muchas gracias,
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] borrar ficheros cuando no queda espacio en disco, empezando por los mas antiguos

2017-07-14 Por tema Jose Caballero
estoy en ello. Casi lo tengo. Muchas gracias.
Luego queda optimizarlo, porque si hablamos de miles de ficheros, usar
por ejemplo los objetos posix.stat_result a pelo puede necesitar
demasiada memoria. A lo mejor me interesa mejor trabajar con tuplas.
Cosas asi. Pero creo que lo basico lo tengo ya.



El día 14 de julio de 2017, 17:44, Robert <robert.ch...@gmail.com> escribió:
> El resto lo puedes programar. No sé si encuentres todo hecho.
>
> El 14-07-2017 5:40 p. m., "Jose Caballero" <jcaballero@gmail.com>
> escribió:
>>
>> sip. Esa es la mitad del algoritmo.
>>
>> El día 14 de julio de 2017, 17:01, Robert <robert.ch...@gmail.com>
>> escribió:
>> > Hola José.
>> >
>> > Revisa esta página, te puede servir.
>> >
>> >
>> > https://www.blog.pythonlibrary.org/2013/11/14/python-101-how-to-write-a-cleanup-script/
>> >
>> >
>> > Saludos.
>> >
>> >
>> >
>> > El 14-07-2017 3:05 p. m., "Jose Caballero" <jcaballero@gmail.com>
>> > escribió:
>> >>
>> >> Hola,
>> >>
>> >>
>> >> tengo que escribir un codigo para borrar ficheros cuando el espacio
>> >> que ocupan pasa cierto limite, empezando por los mas antiguos, pero
>> >> respetando los ficheros que esten vacios.
>> >>
>> >> No parece tarea dificil.
>> >> Pero antes de ponerme a programar sin mas me preguntaba si alguien
>> >> tiene, o conoce, algo parecido ya escrito que pueda reusar.
>> >>
>> >> He hecho una busqueda rapida en google, pero me salen casi todo
>> >> referencias a trucos de sys admin, mas que codigo en python.
>> >> Imagino que no estoy buscando las palabras clave adecuadas.
>> >>
>> >>
>> >> Muchas gracias por adelantado.
>> >> Y mis disculpas por la ausencia de tildes.
>> >> Saludos,
>> >> Jose
>> >> ___
>> >> Python-es mailing list
>> >> Python-es@python.org
>> >> https://mail.python.org/mailman/listinfo/python-es
>> >
>> >
>> > ___
>> > Python-es mailing list
>> > Python-es@python.org
>> > https://mail.python.org/mailman/listinfo/python-es
>> >
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] borrar ficheros cuando no queda espacio en disco, empezando por los mas antiguos

2017-07-14 Por tema Jose Caballero
sip. Esa es la mitad del algoritmo.

El día 14 de julio de 2017, 17:01, Robert <robert.ch...@gmail.com> escribió:
> Hola José.
>
> Revisa esta página, te puede servir.
>
> https://www.blog.pythonlibrary.org/2013/11/14/python-101-how-to-write-a-cleanup-script/
>
>
> Saludos.
>
>
>
> El 14-07-2017 3:05 p. m., "Jose Caballero" <jcaballero@gmail.com>
> escribió:
>>
>> Hola,
>>
>>
>> tengo que escribir un codigo para borrar ficheros cuando el espacio
>> que ocupan pasa cierto limite, empezando por los mas antiguos, pero
>> respetando los ficheros que esten vacios.
>>
>> No parece tarea dificil.
>> Pero antes de ponerme a programar sin mas me preguntaba si alguien
>> tiene, o conoce, algo parecido ya escrito que pueda reusar.
>>
>> He hecho una busqueda rapida en google, pero me salen casi todo
>> referencias a trucos de sys admin, mas que codigo en python.
>> Imagino que no estoy buscando las palabras clave adecuadas.
>>
>>
>> Muchas gracias por adelantado.
>> Y mis disculpas por la ausencia de tildes.
>> Saludos,
>> Jose
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] borrar ficheros cuando no queda espacio en disco, empezando por los mas antiguos

2017-07-14 Por tema Jose Caballero
Hola,


tengo que escribir un codigo para borrar ficheros cuando el espacio
que ocupan pasa cierto limite, empezando por los mas antiguos, pero
respetando los ficheros que esten vacios.

No parece tarea dificil.
Pero antes de ponerme a programar sin mas me preguntaba si alguien
tiene, o conoce, algo parecido ya escrito que pueda reusar.

He hecho una busqueda rapida en google, pero me salen casi todo
referencias a trucos de sys admin, mas que codigo en python.
Imagino que no estoy buscando las palabras clave adecuadas.


Muchas gracias por adelantado.
Y mis disculpas por la ausencia de tildes.
Saludos,
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] Mejora de codigo.

2017-07-03 Por tema Jose Caballero
en realidad, fromtimestamp() funciona siempre que le pases un float
(cualquiera, incluso negativos).
Si con eso te vale, puedes simplemente comprobar que la variable es un float.

Jose

El día 3 de julio de 2017, 11:41, Nicolas lino
 escribió:
> Buenas.
>
> A alguien se le ocurre una manera mas prolija o una librería para hacer lo
> siguiente:
>
>
 a
> 1499095933.289
 b
> 'asdasdsa'
 def is_timestamp(var):
> ...   try:
> ... datetime.fromtimestamp(var)
> ... return True
> ...   except:
> ... return False
> ...
 is_timestamp(a)
> True
 is_timestamp(b)
> False
>
>
> No me gusta la idea de usar un try y forzar una excepción para validar si es
> un timestamp. Pero no se me a ocurrido nada mejor.
>
>
> Gracias!
>
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] ¿cómo anunciar un proyecto para que la comunidad participe en su desarrollo?

2017-06-23 Por tema Jose Caballero
Hola,


imagino que casi todos los miembros de esta lista han leído "the cathedral and 
the bazaar" de Eric Raymond.

Tengo dos o tres proyectos en mente que me gustaría desarrollar, de tamaño 
relativamente pequeño.
Están inspirados por mi trabajo, pero no relacionafos directamente, motivo por 
el que no puedo dedicarles parte de mi tiempo laboral.
Tendría que ser en mi tiempo libre. Pero después del trabajo lo último que me 
apetece es seguir programando.

Así que pienso que tal vez la única forma de ver esos proyectitos salir 
adelante sería "liberarlos" y dejar que la comunidad se encargue de ellos, si 
así lo considerase oportuno (quizás no sean tan interesantes como a mí me lo 
pueden parecer).

En cualquier caso, ¿se suele hacer de alguna forma más o menos canónica? 
¿Existe algún tipo de protocolo para anunciar un proyecto Open Source en python 
y pedir ayuda a la comunidad? ¿Alguna regla no escrita, o escrita, sobre esto?


Muchas gracias por adelantado.
Un saludo,
Jose



___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] pregunta sobre OOP: ?donde poner un metodo list()?

2017-05-09 Por tema Jose Caballero
aclaracion "inline"

El día 9 de mayo de 2017, 16:49, Jose Caballero
<jcaballero@gmail.com> escribió:
> Pirmero, perdon por la ausencia de tildes.
>
>
>
> Imaginemos un caso cualquiera donde el programa tiene que crear,
> modificar, eliminar y listar "cosas", en algun tipo de registro (una
> BBDD, ficheros, servicio web, etc.)
> Las podemos llamar Item.
>
> Imagino que necesitaria una clase Item con los metodos para crear,
> eliminar y modificar:
>
> class Item:
> def __init__(self):
> ...
>
> def create(self):
> ...
>
> def remove(self):
> ...
>
> def update(self, data):
> ...
>
>
> Mi duda es donde habria que tener un metodo list().
> ?En una clase diferente, tipo ItemsManager o algo parecido?
>
> Asumiendo que la respuesta es que si...
> ?Que pasa si tengo 2 o mas objetos que gestionar: Item1, Item2, ..., ItemN?

Por objetos queria decir "tipos de cosas", no instancias de una clase.


> ?Necesitaria sendas clases Item*Manager?
> ?O todo en una sola, como sigue?
>
> class ItemsManager:
> def listitems1(self):
> ...
>
> def listitems2(self):
> ...
>
> def listitemsN(self):
> ...
>
> ?Que me recomiendan?
> Cualquier sugerencia de alguien con experiencia en OOP sera mas que 
> bienvenida.
> Y links con ejemplos de buenas practicas para este tipo de problemas, mas aun 
> :)
>
> Gracias,
> Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] pregunta sobre OOP: ?donde poner un metodo list()?

2017-05-09 Por tema Jose Caballero
Pirmero, perdon por la ausencia de tildes.



Imaginemos un caso cualquiera donde el programa tiene que crear,
modificar, eliminar y listar "cosas", en algun tipo de registro (una
BBDD, ficheros, servicio web, etc.)
Las podemos llamar Item.

Imagino que necesitaria una clase Item con los metodos para crear,
eliminar y modificar:

class Item:
def __init__(self):
...

def create(self):
...

def remove(self):
...

def update(self, data):
...


Mi duda es donde habria que tener un metodo list().
?En una clase diferente, tipo ItemsManager o algo parecido?

Asumiendo que la respuesta es que si...
?Que pasa si tengo 2 o mas objetos que gestionar: Item1, Item2, ..., ItemN?
?Necesitaria sendas clases Item*Manager?
?O todo en una sola, como sigue?

class ItemsManager:
def listitems1(self):
...

def listitems2(self):
...

def listitemsN(self):
...

?Que me recomiendan?
Cualquier sugerencia de alguien con experiencia en OOP sera mas que bienvenida.
Y links con ejemplos de buenas practicas para este tipo de problemas, mas aun :)

Gracias,
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] ¿libro o tutorial de "refactoring" recomendable?

2017-04-21 Por tema Jose Caballero
conozco el libro. Pero los ejemplos estan en Java. Busco algo con los
ejemplos en python.

El 21 de abril de 2017, 10:50, DiegoUG <diego.uribe.ga...@gmail.com>
escribió:

> Refactoring: Improving the Design of Existing Code (Addison-Wesley Object
> Technology Series)
> https://www.amazon.com/dp/B007WTFWJ6/ref=wl_it_dp_o_pC_
> nS_ttl?_encoding=UTF8=30KD96XRHO4S5=I22JSJVQIQ9BRC
>
> El 20 de abril de 2017, 18:49, Jose Caballero <jcaballero@gmail.com>
> escribió:
>
>> Hola,
>>
>> ¿algún libro o web sobre "python code refactoring" que alguien quiera
>> recomendar especialmente?
>> Un búsqueda en google da miles de resultados. Por eso quisiera saber
>> si alguien tiene alguna recomendación en particular.
>>
>> Un saludo,
>> Jose
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>>
>
>
>
> --
>   *Diego Alonso Uribe Gamez*
> --
>
> *Desarrollador web*
>
> Twitter: @DiegoUG <http://www.twitter.com/DiegoUG>
>
> Google+: +DiegoAlonsoUribeGamez
> <https://plus.google.com/+DiegoAlonsoUribeGamez>
> --
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] ¿libro o tutorial de "refactoring" recomendable?

2017-04-20 Por tema Jose Caballero
Hola,

¿algún libro o web sobre "python code refactoring" que alguien quiera
recomendar especialmente?
Un búsqueda en google da miles de resultados. Por eso quisiera saber
si alguien tiene alguna recomendación en particular.

Un saludo,
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] Conocimientos

2017-03-27 Por tema Jose Caballero
El día 27 de marzo de 2017, 9:41, Sherab Giovannini
 escribió:
> La nube es un concepto que ya engloba todo, empezó siendo un concepto para
> explicar al que está a pie de calle lo que es un rpc y se ha hecho tan
> popular que van entrando los demás aunque sea con calzador. Vamos, lo mismo
> que ocurre con el internet of things. Si quieres ponerte quisquilloso puedes
> intentar aplicarlo solamente a servicios remotos, pero como bien has dicho
> es un concepto comercial, así que va a seguir vivo y ampliándose por mucho
> tiempo.
>


?como era aquello de que antes o despues toda discusion tecnica se
convierte en una discusion semantica?
Sin entrar en estilos de escritura (que por email uno nunca sabe las
verdaderas intenciones del que escribe)...
Para evitar confusiones sobre lo que significa "nube", a mi siempre me
gusta distinguir entre IaaS e IaaP. Suele aclarar mas de una duda
antes de empezar.

Saludos,
Jose
P.D. perdon por la falta de tildes.
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] ¿cómo cambiar el path donde get-pip.py instala pip?

2017-03-15 Por tema Jose Caballero
El día 15 de marzo de 2017, 16:42, Jose Caballero
<jcaballero@gmail.com> escribió:
> Hola
>
> esta pregunta es continuación de mi email anterior "problemas con la
> instalación de PIP como usuario"
>
>
> Ya he conseguido instalar python 2.7 como usuario, incluyendo zlib y
> ssl (para lo que he tenido que recompilar openssl).
> He instalado pip con "python get-pip.py --user"
>
> Lo único que me molesta un poco es que haya hecho la instalación en
> $HOME/.local/
> ¿Se puede forzar la instalación en $HOME?
>
> Mi problema ahora es que una búsqueda en google de "install pip path"
> sólo me da resultados de cómo cambiar el path cuando se instala algo
> con pip, no cuando se instala el propio pip :)
>
> Si alguien tiene un link con la respuesta, estaré más que agradecido.
>
>
> Saludos,
> Jose
>
> P.D.  que nadie me diga que con virtualenv se hace todo más fácil, os
> lo suplico.



Dammit !!

Parece que la instalacion que he hecho de python + pip no esta acabada...
Al intentar instalar un paquete con pip me han salido miles de errores tipo:

build/temp.linux-x86_64-2.7/_openssl.c:1011: error: declaration
for parameter ‘ERR_lib_error_string’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:1010: error: declaration
for parameter ‘ERR_error_string_n’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:1009: error: declaration
for parameter ‘ERR_error_string’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:1006: error: declaration
for parameter ‘ENGINE_add_conf_module’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:968: error: declaration for
parameter ‘ENGINE_register_all_complete’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:966: error: declaration for
parameter ‘ENGINE_register_all_digests’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:963: error: declaration for
parameter ‘ENGINE_register_all_ciphers’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:960: error: declaration for
parameter ‘ENGINE_register_all_RAND’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:957: error: declaration for
parameter ‘ENGINE_register_all_DH’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:954: error: declaration for
parameter ‘ENGINE_register_all_DSA’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:951: error: declaration for
parameter ‘ENGINE_register_all_RSA’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:948: error: declaration for
parameter ‘ENGINE_set_table_flags’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:947: error: declaration for
parameter ‘ENGINE_get_table_flags’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:932: error: declaration for
parameter ‘ENGINE_load_builtin_engines’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:906: error: declaration for
parameter ‘DSA_verify’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:904: error: declaration for
parameter ‘DSA_sign’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:872: error: declaration for
parameter ‘CRYPTO_mem_ctrl’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:869: error: declaration for
parameter ‘OPENSSL_config’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:719: error: declaration for
parameter ‘AES_set_decrypt_key’ but no such parameter
build/temp.linux-x86_64-2.7/_openssl.c:718: error: declaration for
parameter ‘AES_set_encrypt_key’ but no such parameter
/home/myusername/include/python2.7/pythread.h:35: error:
declaration for parameter ‘PyThread_ReInitTLS’ but no such parameter
/home/myusername/include/python2.7/pythread.h:32: error:
declaration for parameter ‘PyThread_delete_key_value’ but no such
parameter
/home/myusername/include/python2.7/pythread.h:31: error:
declaration for parameter ‘PyThread_get_key_value’ but no such
parameter
/home/myusername/include/python2.7/pythread.h:30: error:
declaration for parameter ‘PyThread_set_key_value’ but no such
parameter
/home/myusername/include/python2.7/pythread.h:29: error:
declaration for parameter ‘PyThread_delete_key’ but no such parameter
/home/myusername/include/python2.7/pythread.h:28: error:
declaration for parameter ‘PyThread_create_key’ but no such parameter
/home/myusername/include/python2.7/pythread.h:25: error:
declaration for parameter ‘PyThread_set_stacksize’ but no such
parameter
/home/myusername/include/python2.7/pythread.h:24: error:
declaration for parameter ‘PyThread_get_stacksize’ but no such
parameter
/home/myusername/include/python2.7/pythread.h:22: error:
declaration for parameter ‘PyThread_release_lock’ but no such
parameter
/home/myusername/include/python2.7/pythread.h:18: error:
declaration for parameter ‘

[Python-es] ¿cómo cambiar el path donde get-pip.py instala pip?

2017-03-15 Por tema Jose Caballero
Hola

esta pregunta es continuación de mi email anterior "problemas con la
instalación de PIP como usuario"


Ya he conseguido instalar python 2.7 como usuario, incluyendo zlib y
ssl (para lo que he tenido que recompilar openssl).
He instalado pip con "python get-pip.py --user"

Lo único que me molesta un poco es que haya hecho la instalación en
$HOME/.local/
¿Se puede forzar la instalación en $HOME?

Mi problema ahora es que una búsqueda en google de "install pip path"
sólo me da resultados de cómo cambiar el path cuando se instala algo
con pip, no cuando se instala el propio pip :)

Si alguien tiene un link con la respuesta, estaré más que agradecido.


Saludos,
Jose

P.D.  que nadie me diga que con virtualenv se hace todo más fácil, os
lo suplico.
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] problemas con la instalación de PIP como usuario

2017-03-13 Por tema Jose Caballero
Yup.
Los problemas los tengo al instalar PIP (mi email original no está ya en este 
hilo, le faltan partes).
El primer problema era el módulo zlib.
Una vez arreglado eso, ahora estoy lidiando con ssl. Todo apunta a que tendré 
que recompilar también OpenSSL. 
Y cualquiera sabe qué otros problemas aparecerán después de arreglar lo de 
SSL... ;)



On Mar 13, 2017, at 18:23, Teresa CMS <teresa.cm...@gmail.com> wrote:

> Hola, yo he podido hacerlo sobre Debian 8, que por defecto tiene instalado 
> python 2.7 y la 3.5,
> 
> primero he creado el virtualenv, virtualenv venv2 --python=python2.7, 
> activado el entorno, source venv2/bin/activate y despues instalado un paquete 
> como por ejemplo pip install feedparser.
> 
> Ahora si lo quieres hacer sin entornos virtuales, tienes que instalar python 
> en el home del usuario, los pasos son los siguientes:
> 
> mkdir ~/python
> 
> cd ~/python
> 
> wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz
> 
> tar zxfv Python-2.7.2.tgz
> 
> find ~/python -type d | xargs chmod 0755
> 
> cd Python-2.7.2
> 
> ./configure --prefix=$HOME/python
> 
> make
> 
> make install
> 
> Modificar el bashrc
> 
> vim ~/.bashrc
> 
> e insertar
> 
> export PATH=$HOME/python/Python-2.7.2/:$PATH
> 
> ya tu usario puede poner python y sale la 2.7.2
> 
> On 13/03/17 17:43, Jose Caballero wrote:
> 
>> eso no responde realmente a mi pregunta... :)
>> 
>> El día 13 de marzo de 2017, 12:36, Hiko hitokiri <last...@gmail.com> 
>> escribió:
>>> para ese tipo de cosas usa entornos virtuales como virtualenv , etc
>>> 
>>> El 10 de marzo de 2017, 23:10, Manuel Kaufmann <humi...@gmail.com> escribió:
>>>> El 10/03/17 a las 14:01, Jose Caballero escribió:
>>>>> estoy intentando instalar python 2.7 y PIP sin privilegios de root.
>>>>> Pero estoy teniendo algunos problemas.
>>>> 
>>>> Una cosa que está bastante piola ultimamente es pyenv:
>>>> 
>>>> https://github.com/pyenv/pyenv
>>>> 
>>>> Te puede ahorrar algunos dolores de cabeza.
>>>> 
>>>> Saludos,
>>>> 
>>>> --
>>>> 
>>>> Kaufmann Manuel
>>>> -- https://elblogdehumitos.com/
>>>> 
>>>> ___
>>>> Python-es mailing list
>>>> Python-es@python.org
>>>> https://mail.python.org/mailman/listinfo/python-es
>>> 
>>> 
>>> 
>>> --
>>> hiko_hitokiri no pidas que el mundo te trate de una manera cuando tu no le
>>> das el mismo trato a los demás
>>> 
>>> ___
>>> Python-es mailing list
>>> Python-es@python.org
>>> https://mail.python.org/mailman/listinfo/python-es
>>> 
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
> 
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] problemas con la instalación de PIP como usuario

2017-03-13 Por tema Jose Caballero
eso no responde realmente a mi pregunta... :)

El día 13 de marzo de 2017, 12:36, Hiko hitokiri <last...@gmail.com> escribió:
> para ese tipo de cosas usa entornos virtuales como virtualenv , etc
>
> El 10 de marzo de 2017, 23:10, Manuel Kaufmann <humi...@gmail.com> escribió:
>>
>> El 10/03/17 a las 14:01, Jose Caballero escribió:
>>>
>>> estoy intentando instalar python 2.7 y PIP sin privilegios de root.
>>> Pero estoy teniendo algunos problemas.
>>
>>
>> Una cosa que está bastante piola ultimamente es pyenv:
>>
>> https://github.com/pyenv/pyenv
>>
>> Te puede ahorrar algunos dolores de cabeza.
>>
>> Saludos,
>>
>> --
>>
>> Kaufmann Manuel
>> -- https://elblogdehumitos.com/
>>
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>
>
>
>
> --
> hiko_hitokiri no pidas que el mundo te trate de una manera cuando tu no le
> das el mismo trato a los demás
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] crear listas dinámicamente

2017-03-13 Por tema Jose Caballero
> for n in range(0,len(largonodos)):
> a='listaauxiliar'+n
> a=[]


dejando a parte la indentación (que puede ser un problema de
editores), la única línea incorrecta desde un punto de vista de la
sintaxis es la segunda.
El mensaje es "self-explanatory":

  TypeError: cannot concatenate 'str' and 'int' objects

La tercera es correcta, aunque no hace nada, y probablemente no sea lo
que quieras.

Saludos,
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] problemas con la instalación de PIP como usuario

2017-03-10 Por tema Jose Caballero
OK. Gracias.
Googleando he encontrado varias veces que hay que descomentar la linea
de zlib en el fichero src/PythonXY/Modules/Setup
Reinstalando de nuevo, ya tengo zlib.

$ python -c "import zlib; print zlib.__version__"
1.0

Ahora me da fallos con ssl.
Pero ya sé por donde van los tiros.

$ python get-pip.py --user
pip is configured with locations that require TLS/SSL, however the ssl
module in Python is not available.
Collecting pip
  Could not fetch URL https://pypi.python.org/simple/pip/: There was a
problem confirming the ssl certificate: Can't connect to HTTPS URL
because the SSL module is not available. - skipping
  Could not find a version that satisfies the requirement pip (from versions: )
No matching distribution found for pip

Gracias,
Jose


2017-03-10 14:35 GMT-05:00 Kiko :
> necesitas instalar zlib y hacerlo accesible.
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] problemas con la instalación de PIP como usuario

2017-03-10 Por tema Jose Caballero
Hola,

estoy intentando instalar python 2.7 y PIP sin privilegios de root.
Pero estoy teniendo algunos problemas.



$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.6 (Santiago)

$ python --version
Python 2.6.6

$ mkdir ~/src
$ cd src
$ wget wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
$ tar zxvf Python-2.7.13.tgz

$ ./configure prefix=/home/jcaballero/
$ make install

$ export PATH=/home/jcaballero/bin/:$PATH
$ python --version
Python 2.7.13



$ cd src
$ wget https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py --user
Traceback (most recent call last):
  File "get-pip.py", line 20061, in 
main()
  File "get-pip.py", line 194, in main
bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
import pip
zipimport.ZipImportError: can't decompress data; zlib not available





Cualquier consejo o ayuda será más que bienvenido.
Un saludo,
Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] ¿alguna librería para ACLs particularmente recomendable?

2017-03-08 Por tema Jose Caballero




On Mar 8, 2017, at 6:02, Chema Cortes <pych...@gmail.com> wrote:

> 
> 
> El mié., 8 mar. 2017 a las 13:26, Jose Caballero (<jcaballero@gmail.com>) 
> escribió:
> 
> 
> 
> 
> On Mar 8, 2017, at 3:35, Chema Cortes <pych...@gmail.com> wrote:
> 
>> El mar., 7 mar. 2017 a las 20:07, Jose Caballero 
>> (<jcaballero@gmail.com>) escribió:
>> Hola,
>> 
>> estoy buscando por una librería (o paquete,...) para ACLs (Access Control 
>> List).
>> Una búsqueda en google me da varias opciones. Pero no me queda claro
>> el nivel de soporte que tienen, o si son proyectos abandonados, etc.
>> 
>> Si alguien tiene experiencia con alguna en particular que quiera
>> recomendar, soy todo oídos.
>> 
>> 
>> Depende bastante del sistema operativo que uses, del servicio de directorio 
>> y en dónde aplicas las ACLs: ficheros, redes, correo, cloud,... No te podría 
>> decir nada que sirva en general. 
>> 
>> Más que buscar un módulo independiente, busca entre los módulos python 
>> disponibles para el controlador de accesos que uses.
>> 
>> 
> 
> Pues es verdad. Mis disculpas por ser tan vago en la descripción.
> 
> En realidad no es para ficheros. Se trata de controlar quién puede o no puede 
> hacer un PUT/POST/GET de datos en llamadas http. Esos datos son campos en 
> documentos JSON. Estos documentos JSON tienen una estructura interna que es 
> isomórfica a un sistema de ficheros (o sea, un "tree").
> Quiero añadirle los permisos de lectura y escritura a los nodos de ese "tree".
> 
> No sé si es algo particular, pero me suena bastante a AWS S3. Si es así, el 
> módulo más recomendable es 'boto'.
> 
> Aquí un tutorial en español:
> http://cloud.acens.com/tutorial-aws-sdk-para-acceso-a-cloud-storage/
> 


Hmm.
No se trata de S3, pero efectivamente es un caso similar, casi idéntico. No se 
me había ocurrido mirar por ahí.
Miraré "boto".

Muchas gracias!
Jose___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] ¿alguna librería para ACLs particularmente recomendable?

2017-03-08 Por tema Jose Caballero




On Mar 8, 2017, at 3:35, Chema Cortes <pych...@gmail.com> wrote:

> El mar., 7 mar. 2017 a las 20:07, Jose Caballero (<jcaballero@gmail.com>) 
> escribió:
> Hola,
> 
> estoy buscando por una librería (o paquete,...) para ACLs (Access Control 
> List).
> Una búsqueda en google me da varias opciones. Pero no me queda claro
> el nivel de soporte que tienen, o si son proyectos abandonados, etc.
> 
> Si alguien tiene experiencia con alguna en particular que quiera
> recomendar, soy todo oídos.
> 
> 
> Depende bastante del sistema operativo que uses, del servicio de directorio y 
> en dónde aplicas las ACLs: ficheros, redes, correo, cloud,... No te podría 
> decir nada que sirva en general. 
> 
> Más que buscar un módulo independiente, busca entre los módulos python 
> disponibles para el controlador de accesos que uses.
> 
> 

Pues es verdad. Mis disculpas por ser tan vago en la descripción.

En realidad no es para ficheros. Se trata de controlar quién puede o no puede 
hacer un PUT/POST/GET de datos en llamadas http. Esos datos son campos en 
documentos JSON. Estos documentos JSON tienen una estructura interna que es 
isomórfica a un sistema de ficheros (o sea, un "tree").
Quiero añadirle los permisos de lectura y escritura a los nodos de ese "tree".

Jose___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


[Python-es] ¿alguna librería para ACLs particularmente recomendable?

2017-03-07 Por tema Jose Caballero
Hola,

estoy buscando por una librería (o paquete,...) para ACLs (Access Control List).
Una búsqueda en google me da varias opciones. Pero no me queda claro
el nivel de soporte que tienen, o si son proyectos abandonados, etc.

Si alguien tiene experiencia con alguna en particular que quiera
recomendar, soy todo oídos.

Muchas gracias,
Jose.
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] capturar error

2017-02-24 Por tema Jose Caballero
if no par:
   blah blah blah
else:
   blah blah blah

Un busqueda en google "python detect nonetype" te puede dar mas ideas.


Jose
P.S. perdon por la ausencia de tildes.





2017-02-24 10:25 GMT-05:00 Gonzalo V :
> Amigos, una consulta cortita
>
>> tengo un error que es así:
>> Traceback (most recent call last):
>>   File
>> "C:\Users\note\AppData\Local\Programs\Python\Python35-32\alumnos.py", line
>> 16, in 
>> vot=par.find_next().get_text()
>> AttributeError: 'NoneType' object has no attribute 'find_next'
>
>
>
> try:
> par=soup.find(string=re.compile(alumno))
> vot=par.find_next().get_text()
> titulo=soup.find('titulo').get_text()
>
> except AttributeError as e:
>if e.args=='NoneType':
>print('adasd')
> sé capturar el AttributeError pero no sé como capturar solo el NoneType para
> que haga algo si eso ocurre.
> si no está el alumno, levanta Nonetype, pero no sé como capturarlo¿cómo se
> hace?
>
>
>
> Saludos,
> Gonzalo
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] Todos los datos de una ejecucion

2017-02-22 Por tema Jose Caballero
> Estoy buscando la manera de ejecutar en Python2 un comando externo y,
> tanto obtener el resultado de error (exit code), como la salida de texto
> (stdout)
>

para tests rapidos ("quick and dirty") suelo usar commands.getstatusoutput()
Para los proyectos de verdad, subprocess.Popen()

Con eso ya tienes para leer un buen rato.

Jose
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] algo similar a matplotlib subplots() con la version 0.99.1.2.-1

2016-10-24 Por tema Jose Caballero
> 
> 
> 
>> -- alguien sabe donde puedo encontrar el RPM para el6 de una version
>> mas reciente que la 0.99 ?
> 
> Evita interferir con tu sistema de paquetes. Crea un virtualenv e
> instala todos los paquetes al día, o usa Conda (u otra distribución).
> 
> 

Si no está en RPM no me interesa, precisamente para que no haya 
interferencias/discrepancias raras con mi sistema de paquetes.___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es


Re: [Python-es] Mayusculas y minusculas en una secuencia

2016-05-24 Por tema Jose Caballero


> Por lo que se ve, en la primera línea tienes parejas de números que delimitan 
> las regiones que quieres cambiar, mientras que en la segunda estaría la 
> cadena a cambiar.


Y aquí creo que hay cierta indefinición en el problema.
¿Cuál es el primer índice de la cadena? ¿0 o 1?
En la región N-M, ¿se cambian a mayúsculas los caracteres hasta M o hasta M-1?

___
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] Mayusculas y minusculas en una secuencia

2016-05-23 Por tema Jose Caballero



> Quiero convertir a mayusculas una region determinada de una secuencia. La 
> region esta en la primera linea y la region de la secuencia que quiero 
> cambiar esta en la segunda linea.


No acabo de entenderlo. Quizás si lo explicas de otra manera...

___
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] pregunta de nova sobre unittest

2016-05-20 Por tema Jose Caballero
creo recordar que lo intente cuando abri el hilo. No recuerdo muy
bien, pero creo que no supe como hacerlo para 2 o mas metodos. Lo
intentare de nuevo.

PS: perdon por las [no] tildes

El día 19 de mayo de 2016, 16:13, Yamila Moreno Suárez
<yamila...@gmail.com> escribió:
> Buenas! En lugar de usar decoradores, prueba a usar el context manager:
>
> def test_my_method():
> with patch('module.to.patch') as mock_1:
> mock_1.return_value = xxx
> result = my_method()
> assert mock_1.calle_count == 1
> assert result == lo-que-sea
>
> Suerte!
>
> Y si ves que es un poco lío, no desesperes, es un lío de cuidado. Ánimo :-)
>
> El 13 may. 2016 2:34, "Jose Caballero" <jcaballero@gmail.com> escribió:
>>
>> Hola de nuevo,
>>
>> he encontrado una manera de hacerlo (a parte de crear myfakeclass).
>> Mas o menos funciona, aunque lo veo algo "error-prone":
>>
>>
>> class Test(unittest.TestCase):
>>
>> @patch('mypackage.mymodule.myclass.g')
>> @patch('mypackage.mymodule.myclass.h')
>> def test_f(self, mock_requests1, mock_requests2):
>> mock_requests1.return_value = None
>> mock_requests2.return_value = None
>> obj = myclass()
>> obj.f()
>>
>>
>> mock_requests1 es el argumento asociado a
>> @patch('mypackage.mymodule.myclass.g')
>> mock_requests2 es el argumento asociado a
>> @patch('mypackage.mymodule.myclass.h')
>>
>> Lo que no me gusta es que si quito uno de los decoradores, hay que
>> cambiar la lista de argumentos de test_f( )
>> Pero por lo demas, parece que funciona.
>> ___
>> 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] pregunta de nova sobre unittest

2016-05-12 Por tema Jose Caballero
Hola de nuevo,

he encontrado una manera de hacerlo (a parte de crear myfakeclass).
Mas o menos funciona, aunque lo veo algo "error-prone":


class Test(unittest.TestCase):

@patch('mypackage.mymodule.myclass.g')
@patch('mypackage.mymodule.myclass.h')
def test_f(self, mock_requests1, mock_requests2):
mock_requests1.return_value = None
mock_requests2.return_value = None
obj = myclass()
obj.f()


mock_requests1 es el argumento asociado a
@patch('mypackage.mymodule.myclass.g')
mock_requests2 es el argumento asociado a
@patch('mypackage.mymodule.myclass.h')

Lo que no me gusta es que si quito uno de los decoradores, hay que
cambiar la lista de argumentos de test_f( )
Pero por lo demas, parece que funciona.
___
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] pregunta de nova sobre unittest

2016-05-12 Por tema Jose Caballero
Lo voy a complicar un poco mas...


 $ cat /usr/lib/python2.6/site-packages/mypackage/mymodule.py

 class myclass:

 def f(self, ):
 # codigo aqui
 x = self.g()
 y = self.h()
 # codigo aqui

 def g(self, ...):
 # codigo aqui

 def h(self, ...):
 # codigo aqui


y quiero "patchear" g( ) y h( ) a la vez.
___
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] pregunta de nova sobre unittest

2016-05-12 Por tema Jose Caballero
Hola,

por fin me he decidido a aprender algo sobre unittest.
Sip!, ahora. O sea que me podeis preguntar como demonios he estado
programando hasta ahora sin unit tests. Pues de aquella manera...

Imagino que me surgiran muchas preguntas. Al menos hasta que encuentre
un buen libro (no he tenido demasiada suerte hasta la fecha con esto)
y realmente comprenda lo que estoy haciendo.

La primera pregunta que tengo es de puro novato. Pido disculpas por
adelantado por ello.



Imaginemos que tengo una clase tal que

$ cat /usr/lib/python2.6/site-packages/mypackage/mymodule.py

class myclass:

def f(self, ):
# codigo aqui
x = self.g()
# codigo aqui

def g(self, ...)
# codigo aqui

Y quiero hacer una unittest para validad metodo f( ), pero sin llamar a g( )

He estado leyendo sobre Mocking y Patching, pero por lo que he
entendido, sirven para "falsear" otras clases que se usan en el
codigo. Pero no veo como usar la misma estrategia para falsear la
propia clase que se esta verificando.

He intentado algo de este estilo:


class Test(unittest.TestCase):

@patch('mypackage.mymodule.myclass')
def test_f(self, mock_requests):
mock_requests.g.return_value = None
obj = myclass()
obj.f()



con la esperanza de que no se llamaria realmente al codigo g(), pero
parece que no funciona y el metodo g() sigue siendo invocado.

Imagino que una forma naive seria hacer algo tipo:


class mytestingclass(myclass):
def g(self...): return None


y pasar los unittest sobre la nueva clase mytestingclass.
?Pero no es algo rupestre?

Si alguien tiene un link a alguna web con ejemplos de como hacer
Mock/Patch de la propia clase, falseando las llamadas a otros metodos
desde aquel metodo que se esta validando, estare mas que agradecido.



Un saludo,
Jose
(p.s. perdon por la ausencia de tildes)
___
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] pregunta rapida sobre pdb (python debugger)

2016-05-02 Por tema Jose Caballero
El día 2 de mayo de 2016, 17:09, Carlos Zuniga <carlos@gmail.com> escribió:
> 2016-04-28 14:56 GMT-05:00 Jose Caballero <jcaballero@gmail.com>:
>> Hola,
>>
>>
>> ?es posible forzar pdb, en modo interactivo, a pasar linea por linea
>> tanto para el script principal como alguna de las clases/funciones de
>> las que se hace "import"?
>>
>> Cuando se hace algo tipo:
>>
>> $ python -m pdb myscript.py
>>
>> el debugger va linea a linea sobre myscript.py
>> Pero si tengo algo tipo
>>
>> from mypackage import myclass
>>
>> el debugger no se mete en mypackage.
>> Es normal.
>>
>> Pero me gustaria saber si es posible forzar pdb a entrar en mypackage,
>> y que siga haciendo un "trace" linea a linea.
>>
>
> Puedes añadir la línea `import pdb; pdb.set_trace()` en el punto donde
> quieres comenzar a debuggear dentro de mypackage.


Sí.
Pero luego hay que acordarse de quitarla. Si no, se ejecuta siempre,
con o sin debugger  :)
___
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] pregunta rapida sobre pdb (python debugger)

2016-04-28 Por tema Jose Caballero
Hola,


?es posible forzar pdb, en modo interactivo, a pasar linea por linea
tanto para el script principal como alguna de las clases/funciones de
las que se hace "import"?

Cuando se hace algo tipo:

$ python -m pdb myscript.py

el debugger va linea a linea sobre myscript.py
Pero si tengo algo tipo

from mypackage import myclass

el debugger no se mete en mypackage.
Es normal.

Pero me gustaria saber si es posible forzar pdb a entrar en mypackage,
y que siga haciendo un "trace" linea a linea.


Muchas gracias.
Saludos,
Jose
___
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] convertir el output de "date" a EPOCH

2016-04-17 Por tema Jose Caballero
> From To Use seconds since the epoch struct_time in UTC gmtime() seconds
> since the epoch struct_time in local time localtime() struct_time in UTC
> seconds since the epoch calendar.timegm() struct_time in local time seconds
> since the epoch mktime()
>>
>>


>>> d1 = datetime.strptime("Fri Apr 15 11:32:19 EDT 2016", '%a %b %d %H:%M:%S 
>>> %Z %Y')
>>> d2 = datetime.strptime("Fri Apr 15 15:32:19 UTC 2016", '%a %b %d %H:%M:%S 
>>> %Z %Y')

>>> st1 = d1.timetuple()
>>> st2 = d2.timetuple()

>>> print time.mktime(st1)
1460734339.0

>>> print calendar.timegm(st2)
1460734339
___
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] convertir el output de "date" a EPOCH

2016-04-17 Por tema Jose Caballero
> 
> 
> 
> Lo que sí que pone la documentación del módulo 'datetime' es una tabla sobre 
> cómo convertir entre distintas representaciones que aclara algo el misterio:
> 
> From To Use seconds since the epoch struct_time in UTC gmtime() seconds since 
> the epoch struct_time in local time localtime() struct_time in UTC seconds 
> since the epoch calendar.timegm() struct_time in local time seconds since the 
> epoch mktime()
> 
> 

Eso no lo había visto, huh!
Lo tengo que probar. 
Pero parece que tengo que saber a priori si la fecha es UTC o no. Fácil, pero 
no me lo esperaba...

Muchas gracias,
Jose___
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] convertir el output de "date" a EPOCH

2016-04-15 Por tema Jose Caballero
Hola,

tengo la sensacion de que es una pregunta simple, pero llevo 2 horas
buscando en google y no lo encuentro  :(

Necesito convertir un "string" a segundos desde el epoch.
En principio seria facil, salvo por el hecho de que no se a priori la zona.
El string puede ser

"Fri Apr 15 11:32:19 EDT 2016"

o podria ser

"Fri Apr 15 15:32:19 UTC 2016"


Yo creia que %Z entiende la "time zone". Pero me encuentro con esto:



>>> from datetime import datetime

>>> d1 = datetime.strptime("Fri Apr 15 11:32:19 EDT 2016", '%a %b %d %H:%M:%S 
>>> %Z %Y')
>>> d2 = datetime.strptime("Fri Apr 15 15:32:19 UTC 2016", '%a %b %d %H:%M:%S 
>>> %Z %Y')

>>> print d1.utctimetuple()
time.struct_time(tm_year=2016, tm_mon=4, tm_mday=15, tm_hour=11,
tm_min=32, tm_sec=19, tm_wday=4, tm_yday=106, tm_isdst=0)
>>> print d2.utctimetuple()
time.struct_time(tm_year=2016, tm_mon=4, tm_mday=15, tm_hour=15,
tm_min=32, tm_sec=19, tm_wday=4, tm_yday=106, tm_isdst=0)

>>> print d1.strftime("%s")
1460734339
>>> print d2.strftime("%s")
1460748739


Yo hubiese esperado el mismo resultado, al ser ambas fechas la misma
(una en UTC y la otra en EDT).

?que me esta faltando?


Muchas gracias por adelantado.
Jose

P.S. perdon por la falta de tildes.
___
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] [OFF TOPIC] herramientas para hacer diagramas UML

2016-03-24 Por tema Jose Caballero
>
> Para mi la mejor es plantuml:
> http://plantuml.com/
>
> No hay GUI, no hace falta ratón, solo tu editor favorito y un comandito de
> nada ;-)


Creo que voy a ir por aquí.
No soy muy fan de las GUIs. Sigo haciendo todo, incluyendo escribir
código, con VIM  :)

Me ha llevado un rato entender la web, hasta que la he abierto con
otro navegador. Está llena de porquería, la verdad.
Pero al final he conseguido llegar a la página para bajarse el .jar
(no es un RPM, pero de momento me vale).
Ahora sólo necesito encontrar el tutorial, si es que existe...

Muchas gracias.
Un saludo,
Jose
___
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] [OFF TOPIC] herramientas para hacer diagramas UML

2016-03-23 Por tema Jose Caballero
Perdón por el off topic.


Vamos a empezar una aplicación nueva en el curro, en python (lo que me
sirve de excusa para preguntar en esta lista), y esta vez queremos
hacer diagramas UML, tanto para ayudar en la fase de diseño como para
documentación.

Nunca he hecho diagramas UML, salvo con papel y lápiz.
Una búsqueda rápida en google me da miles de posibilidades. En un
mundo ideal las iría probando todas. Pero no tengo tiempo.

Si alguien ha usado alguna herramienta libre (y gratis, o muy barata)
para dibujar UMLs, y le resultó  relativamente sencilla, estoy abierto
a recomendaciones.
Me vale tanto herramientas web como software que se pueda instalar en
RedHat 5, 6 o 7, preferiblemente con RPM.



Muchas gracias. Y de nuevo perdón por el OFF TOPIC y por preguntar
algo que debería poder averiguar por mi mismo (si tuviese el tiempo
necesario).

Un saludo,
Jose
___
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] __import__( ) cuando el "package" incluye un punto .

2015-12-11 Por tema Jose Caballero
acabo de comprobar que tampoco se puede hacer un import normal

 from 1.2 import foo

Mmmm. Tal vez tenga que cambiar los paths a algo como

 //package/api/v1_0/foo.py
 //package/api/v1_1/foo.py
 //package/api/v1_2/foo.py



El día 11 de diciembre de 2015, 11:42, Sergio Fernández
<ser...@wikier.org> escribió:
> Jamás se debe usar módulos con puntos!
>
> La convención viene de PEP8:
> https://www.python.org/dev/peps/pep-0008/#package-and-module-names
>
> La razón es que en Python 2.4 se introduj el PEP328 con soporte para
> los imports locales: https://www.python.org/dev/peps/pep-0328/
>
> Y por tanto utilizar punto entra en conflicto con esa caracteristica.
>
>
> 2015-12-11 17:36 GMT+01:00 Jose Caballero <jcaballero@gmail.com>:
>> Hola,
>>
>>
>> necesito hacer import de una serie de modulos, pero solo se sabe el
>> path exacto en "run time".
>> Trabajo con "legacy code" que hace el import de estos modulos con 
>> __import__( )
>>
>> Pero ahora los paths incluyen en punto, de esta forma
>>
>> /./package/api/1.0/foo.py
>> /./package/api/1.1/foo.py
>> /./package/api/1.2/foo.py
>>
>> Y al pasar "api.1.2.foo" como primer argumento a __import__( ), se hace un 
>> lio.
>>
>> Alguien tiene algun link donde explique como solventar esta silucion
>> con __import__( ) ?
>> NOTE: me interesa __import__( ), no imp( ), ni importlib, etc.
>>
>>
>> Gracias por adelantado.
>> Un saludo,
>> Jose
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>
>
>
> --
> Sergio Fernández
> http://www.wikier.org
> ___
> 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] __import__( ) cuando el "package" incluye un punto .

2015-12-11 Por tema Jose Caballero
Hola,


necesito hacer import de una serie de modulos, pero solo se sabe el
path exacto en "run time".
Trabajo con "legacy code" que hace el import de estos modulos con __import__( )

Pero ahora los paths incluyen en punto, de esta forma

/./package/api/1.0/foo.py
/./package/api/1.1/foo.py
/./package/api/1.2/foo.py

Y al pasar "api.1.2.foo" como primer argumento a __import__( ), se hace un lio.

Alguien tiene algun link donde explique como solventar esta silucion
con __import__( ) ?
NOTE: me interesa __import__( ), no imp( ), ni importlib, etc.


Gracias por adelantado.
Un saludo,
Jose
___
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] 'Heredar' un venv dentro de otro

2015-11-30 Por tema Jose Caballero
El día 29 de noviembre de 2015, 14:48, Kiko  escribió:
> Hola.
>
> No sé si esta será la pregunta rara del día. Ahí va.
>
> Imaginad que tengo un venv, llamémosle venv-base, donde tengo instalado
> cosas que siempre uso (p.e., numpy, scipy, matplotib y pandas) y que suele
> ser un poco incordio instalar usando pip.
>
> ¿Se podría crear un venv que usase estas librerías (las 'heredase' de
> venv-base) además de las suyas particulares sin tener que instalar numpy,
> scipy, matplotlib, pandas en el nuevo venv?
>
> Algo parecido a la opción --system-site-packages
> (https://virtualenv.readthedocs.org/en/latest/userguide.html#the-system-site-packages-option)
>
> No quiero tener numpy, scipy, matplotlib y Pandas instaladas de base en el
> sistema pero tampoco quiero tener que instalarlas con cada nuevo venv.
>
> Conda/Anaconda ayuda a manejar alguno de los problemas pero, sin tener una
> burrada de venv's ni de librerías instaladas, tengo carpetas de 6Gb o más.
>
> Supongo que lo que quiero no existe y, sin pensar mucho en ello, veo
> millones de posibles conflictos a manejar.
>
> ¿Sería útil que existiera algo así si no existe ya?
>
>


Me suena a Docker.
___
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] Consulta

2015-11-20 Por tema Jose Caballero
¿Quizás con un Thread?
Aunque no lo he "googleado". Pero no me extrañaría que hubiese disponibles 
cientos de implementaciones, quizás mucho mejores que usando Threads...



On Nov 20, 2015, at 5:38, Gonzalo V  wrote:

> Estimados pythonistas.
> Muy buenos días.
> 
> Quería hacerles una consulta. ¿Cómo se puede poner un mensaje en pantalla 
> mientras se hace un cálculo o interación?
> por ejemplo que en una linea diga "interando... espere." o "calculando... 
> espere" 
> o también una barrita tipo porcentaje que vaya indicando cuánto completado 
> lleva la iteración? , ejemplo: "completado 20% de la iteración espere".
> 
> lo que he conseguido que aparezca un mensaje por cada itereación lo que no es 
> lo que busco, algo asi.
> 
> "interando... espere."
> "interando... espere."
> "interando... espere."
> "interando... espere."
> "interando... espere."
> 
> 
> Saludos,
> Gonzalo
> ___
> 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] multiprocessing.connection.Listener y SimpleHTTPServer

2015-09-07 Por tema Jose Caballero
El día 7 de septiembre de 2015, 12:04, Carlos Zuniga
<carlos@gmail.com> escribió:
> 2015-09-06 12:58 GMT-05:00 Jose Caballero <jcaballero@gmail.com>:
>> OK. Parece que mis observaciones no eran del todo correctas.
>> No parece ser tanto un problema de incompatibilidad entre
>> multiprocessing.connection.Listener y SimpleHTTPServer.
>> Es que no me había dado cuenta de que listener.accept()  bloquea todo
>> hasta que recibe una llamada.
>>
>> Así que ahora estoy intentando meterlo todo en un loop con timeouts...
>>
>>
>
> Necesitas que ambas cosas corran en el mismo proceso? podrías tener el
> SimpleHTTPServer corriendo en otro script.

No lo había pensado.
La verdad es que trabajo con un proyecto heredado. Estaba así cuando
yo llegué (y no, no es broma), y no se me había ocurrido separarlo en
dos piezas.
Si no encuentro otra solución, quizás me plantee hacerlo así.

Gracias,
Jose
___
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] multiprocessing.connection.Listener y SimpleHTTPServer

2015-09-06 Por tema Jose Caballero
OK. Parece que mis observaciones no eran del todo correctas.
No parece ser tanto un problema de incompatibilidad entre
multiprocessing.connection.Listener y SimpleHTTPServer.
Es que no me había dado cuenta de que listener.accept()  bloquea todo
hasta que recibe una llamada.

Así que ahora estoy intentando meterlo todo en un loop con timeouts...


El día 5 de septiembre de 2015, 14:05, Jose Caballero
<jcaballero@gmail.com> escribió:
> Hola,
>
>
>
> tenemos en el trabajo un servicio ("daemon") que, entre otras cosas,
> muestra algunos ficheros via web.
> Para la web, dado que no tenemos nada más en esa máquina, y se trata
> de 3 o 4 ficheros ASCII, en lugar de apache o similar simplemente este
> servicio en cuestión usa SimpleHTTServer y utiliza el servidor web
> "built-in" de python.
> Hasta ahora todo ha funcionado bien.
>
> Ahora tenemos la necesidad de escribir comandos que manden mensajes al daemon.
> La forma más sencilla que he encontrado hasta el momento después de
> googlear un rato ha sido usar
>multiprocess.connection.Listener
>
> Un par de tests triviales "stand-alone" funcionan bien.
> Sin embargo, cuando lo he intentado integrar en el servicio, parece
> que este Listener hace que el servidor web SimpleHTTPServer deje de
> funcionar.
>
> Si alguien tiene algún link a una web donde explique cómo puedo hacer
> el paso de mensajes entre clientes y el daemon, en python 2.6 (y a ser
> posible sin tener que instalar nada más) y que no fastidie al servidor
> web que se lanza con SimpleHTTPServer, estaré más que agradecido.
>
>
>
> Muchas gracias por adelantado.
> Un saludo,
> Jose
___
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] RPMs para matplotlib y numpy

2015-06-22 Por tema Jose Caballero
Muchas gracias  a todos por vuestras respuestas.
En este caso, sin embargo, no estoy seguro de que sean buenos
consejos, aunque si con buena intencion.
No se trata de una tarea en mi ordenador personal, sino en una maquina
del curro, donde todo esta instalado con RPMs y mantenido con puppet.
No se si en esas condiciones es buena idea mezclar dos sistemas
diferentes de instalacion de librerias: RPMs y PIP, por ejemplo. No lo
veo claro.
Pero agradezco las respuestas en cualquier caso.

Un saludo
Jose (sin tildes)
___
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] RPMs para matplotlib y numpy

2015-06-22 Por tema Jose Caballero
El día 22 de junio de 2015, 14:58, Pablo Rodríguez oi...@web.de escribió:
 On 06/21/2015 06:38 PM, Jose Caballero wrote:
 [...]
 Quería instalar matplotlib. Estaba intentando una instalación a partir
 de las fuentes de matplotlib-1.4.3, pero se queja porque necesita
 numpy 1.6 o superior.
 La última versión para numpy en el repo de CENTOS 6 is la 1.4, y el
 repo de EPEL no hay nada.
 [...]

 Hola Jose,

 ¿no te valen los archivos RPM del repositorio de CENTOS 6? (Por si sirve
 de algo, el paquete se llama python-matplotlib.)

 Perdona, pero ¿no puedes instalarlos con yum? (Es el modo de instalar
 paquetes en CENTOS, por lo que parece.)

 Aunque me he leído todos los mensajes del hilo, no consigo entender el
 problema. Quizá con más datos sobre la situación pueda llegar a ayudarte.

 Perdona por la falta de ayuda y saludos,


 Pablo
 --


Hola Pablo,

El unico problema es que las versiones en CENTOS para RHEL 6 son muy
antiguas. Para matplotlib tiene la version 0.99, y para numpy la 1.4

Jose
___
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] RPMs para matplotlib y numpy

2015-06-22 Por tema Jose Caballero
Esa es una buena pregunta, en realidad 2 buenas preguntas.
Y la respuesta es que el software que nosotros escribimos para ser
distribuido son siempre servicios o demonios (con lo que la opcion
Docker queda descartada en la mayoria de los casos); y lo distribuimos
todo con RPMs, o lo intentamos.

Jose


El día 22 de junio de 2015, 12:46, Carlos Zuniga
carlos@gmail.com escribió:
 2015-06-22 10:27 GMT-05:00 Jose Caballero jcaballero@gmail.com:
 Muchas gracias  a todos por vuestras respuestas.
 En este caso, sin embargo, no estoy seguro de que sean buenos
 consejos, aunque si con buena intencion.
 No se trata de una tarea en mi ordenador personal, sino en una maquina
 del curro, donde todo esta instalado con RPMs y mantenido con puppet.
 No se si en esas condiciones es buena idea mezclar dos sistemas
 diferentes de instalacion de librerias: RPMs y PIP, por ejemplo. No lo
 veo claro.
 Pero agradezco las respuestas en cualquier caso.


 Cómo instalan el software que no esta en RPMs? por ejemplo, el
 software que ustedes mismos escriben? Tal vez seguir el mismo
 procedimiento para instalar estas bibliotecas que no son parte de la
 distribución.

 En mi trabajo íbamos a usar puppet, pero en lugar de eso nos movimos a
 usar contenedores docker. Todo lo que es necesario mantener en las
 máquinas de producción es docker y todo lo necesario para que corra
 cada servicio viene empaquetado en la imagen para docker. Tal vez te
 interese en el futuro :)
 ___
 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] RPMs para matplotlib y numpy

2015-06-21 Por tema Jose Caballero
¿debo interpretar tu respuesta como que no es posible instalarlos con RPMs?

El día 21 de junio de 2015, 12:53, Kiko kikocorre...@gmail.com escribió:
 no puedes usar pip o conda? Te recomiendo el uso de conda si quieres
 simplificarte la vida con numpy and friends.

 El 21/6/15, Jose Caballero jcaballero@gmail.com escribió:
 Hola,


 reconozco que es un tanto embarazoso tener que preguntar esto, pero la
 falta de experiencia me obliga a ello.

 Trabajo en RHEL 6:

 $ uname -r
 2.6.32-504.8.1.el6.x86_64

 Quería instalar matplotlib. Estaba intentando una instalación a partir
 de las fuentes de matplotlib-1.4.3, pero se queja porque necesita
 numpy 1.6 o superior.
 La última versión para numpy en el repo de CENTOS 6 is la 1.4, y el
 repo de EPEL no hay nada.

 ¿Alguien tiene los links a los RPMs más recientes de matplotlib y
 numpy para EL 6?


 Muchas gracias por adelantado.
 Saludos,
 Jose
 ___
 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] RPMs para matplotlib y numpy

2015-06-21 Por tema Jose Caballero
Hola,


reconozco que es un tanto embarazoso tener que preguntar esto, pero la
falta de experiencia me obliga a ello.

Trabajo en RHEL 6:

$ uname -r
2.6.32-504.8.1.el6.x86_64

Quería instalar matplotlib. Estaba intentando una instalación a partir
de las fuentes de matplotlib-1.4.3, pero se queja porque necesita
numpy 1.6 o superior.
La última versión para numpy en el repo de CENTOS 6 is la 1.4, y el
repo de EPEL no hay nada.

¿Alguien tiene los links a los RPMs más recientes de matplotlib y
numpy para EL 6?


Muchas gracias por adelantado.
Saludos,
Jose
___
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] os.walk( ) con timeout

2015-06-11 Por tema Jose Caballero
muchas gracias!

El día 11 de junio de 2015, 10:24, Alberto Valverde
albe...@toscat.net escribió:
 Hola,

 Tal vez con https://pypi.python.org/pypi/timeout-decorator/0.3.2 ?

 Alberto

 On Thursday, June 11, 2015, Jose Caballero jcaballero@gmail.com wrote:

 [Pido perdon por adelantado por la ausencia de tildes. Teclado americano]

 Hola,

 me preguntaba si alguien sabria como hacer uso de os.walk( ) para
 recorrer un subtree en el sistema de ficheros, pero con un timeout.
 La razon para un timeout es, por ejemplo, para no quedarse esperando
 para siempre si se trata de un sistema de ficheros montado (tipo AFS o
 NFS) y el server no responde.

 Muchas gracias por adelantado.
 Un saludo,
 Jose
 ___
 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] os.walk( ) con timeout

2015-06-11 Por tema Jose Caballero
[Pido perdon por adelantado por la ausencia de tildes. Teclado americano]

Hola,

me preguntaba si alguien sabria como hacer uso de os.walk( ) para
recorrer un subtree en el sistema de ficheros, pero con un timeout.
La razon para un timeout es, por ejemplo, para no quedarse esperando
para siempre si se trata de un sistema de ficheros montado (tipo AFS o
NFS) y el server no responde.

Muchas gracias por adelantado.
Un saludo,
Jose
___
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] os.walk( ) con timeout

2015-06-11 Por tema Jose Caballero




On Jun 11, 2015, at 20:23, Chema Cortes pych...@gmail.com wrote:

 
 
 El 11 de junio de 2015, 16:06, Jose Caballero jcaballero@gmail.com 
 escribió:
 [Pido perdon por adelantado por la ausencia de tildes. Teclado americano]
 
 Hola,
 
 me preguntaba si alguien sabria como hacer uso de os.walk( ) para
 recorrer un subtree en el sistema de ficheros, pero con un timeout.
 La razon para un timeout es, por ejemplo, para no quedarse esperando
 para siempre si se trata de un sistema de ficheros montado (tipo AFS o
 NFS) y el server no responde.
 
 Una forma eficaz para evitar bloqueos en tu aplicación es usar futures. En 
 python3 vienen ya en la librería estándar y también de serie en anaconda:
 
 https://docs.python.org/3.4/library/concurrent.futures.html
 https://pypi.python.org/pypi/futures/
 
 
 

Hola Chema,

No conozco futures, me lo tengo que mirar.
Mi único 'constrain' es que estoy atado a python 2.6. No sé si será un 
problema. Lo sabré cuando me lo mire.

Un saludo,
Jose___
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] Sobre ofertas de trabajo en la lista de correo, mi opinión (aunque no le interese a nadie)

2015-05-30 Por tema Jose Caballero
Hola,


hay a quien le parece bien que se anuncien ofertas de trabajo relacionadas con 
python en esta lista, y a quien le parece mal. A mí me parece bien.
Pero sí me molestan las respuestas airadas de por ese sueldo no me levanto de 
la cama.

Pero yo recomendaría dar la mayor información posible en el anuncio. Todo lo 
que se pueda. Así uno sabe de entrada si podría estar interesado o no sin 
necesidad de tener que mandar muchos mensajes a la lista.

-- Una descripción lo más detallada posible de las tareas a hacer. Mejor 
instalar y mantener django version 1.2.3 en Fedora que tareas web. Creo que 
se me entinde.

-- decir el lugar, y qué porcentaje del tiempo del tiempo hay que estar allí. 
Idem con la entrevista. ¿Se puede hacer por skype, por ejemplo?

-- condiciones del contrato. Tiempo completo o parcial, temporal o fijo, etc.

Hay quien prefiere no decir la empresa. Vale. Pero se pueden dar datos que 
ayudan a decidir si es una apuesta arriesgada o no. Yo, por ejemplo, vivo fuera 
y gano xx $ año por un curro que es más o menos 80% python. Y me gustaría 
volver a España. Puedo renunciar a un porcentaje de mi sueldo, pero a cambio 
necesito cierta garantía de estabilidad. Datos que pueden ayudar a estimarlo 
sin tener que decir el nombre de la empresa son:
 -- antigüedad de la empresa
 -- número de empleados
 -- volumen de facturación el año anterior

Etc.

Un saludo,
Jose
___
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] Vídeos charlas PyConEs 2014

2015-03-13 Por tema Jose Caballero
Si se busca en google pycones 2014 una de las primeras entradas es un video 
de youtube a una de las charlas: MIIMETIQ.



On Mar 13, 2015, at 9:53, Juan Luis Cano juanlu...@gmail.com wrote:

 ...te encuentra una? O.o
 
 Pues que yo sepa no (aún), pero eso quien lo sabe es David Francos.
 
 Juanlu
 
 On Mar 13, 2015 12:48 PM, Juan Ignacio euriba...@gmail.com wrote:
 ¿Alguien sabe si se han publicado los vídeos de las charlas de la PyConEs 
 2014? Son Google solo me encuentra una. ¿Están en la Internet Profunda?
 
 -- 
 Juan Ignacio Rodríguez de León
 Móvil: 605 890514
 E-Mail: euriba...@gmail.com
 http://www.elornitorrincoenmascarado.com/
 http://descon2.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] Listas en python

2014-10-30 Por tema Jose Caballero
Me resulta complicado seguir la explicacion...
Parece ser algun tipo de liga (tipo liga deportiva o algo parecido).
Pero no me queda claro si es por eliminatorias, o se deben enfrentar
todos con todos, por ejemplo.
Y no me queda clara la diferencia entre evento y encuentro.

El día 30 de octubre de 2014, 13:34, Peon Blanco
peonblanc...@gmail.com escribió:
 Hola buen día tengo alguna duda no se si es posible.

 tengo datos que adquiero de una base de datos sqlite podrían ser los
 siguientes.
 escuela-1
 escuela-2
 escuela-3
 escuela-4
 escuela-5
 escuela-6
 escuela-7
 escuela-8
 escuela-9
 escuela-10

 estos datos son para competencias(3) voy comparando las escuelas para
 definir el orden de los encuentros al momento lo hago

 Datos=Total de escuelas x eventos 
 DATOS=random.sample(DATOS, len(DATOS))

 escuela-1 vs escuela-2
 escuela-3 vs escuela-4
 escuela-5 vs escuela-6
 escuela-7 vs escuela-8
 escuela-9 vs escuela-10
 escuela-1 vs escuela-3
 escuela-2 vs escuela-4
 escuela-7 vs escuela-6
 escuela-5 vs escuela-9
 escuela-8 vs escuela-10
 escuela-10 vs escuela-1
 escuela-9 vs escuela-2
 escuela-8 vs escuela-3
 escuela-7 vs escuela-4
 escuela-6 vs escuela-5


 y los trae de esta forma

 lo que quiero realizar pero no tengo idea de como es tratar de poner los
 eventos mas o menos cada 5 encuentros.
 que cada escuela tenga entre 4 a 5 eventos de descanso.

 espero haberme explicado


 ___
 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] Listas en python

2014-10-30 Por tema Jose Caballero
Ha!, no todos los emparejamientos se producen a la vez. Cada
emparejamiento se produce en un dia diferente. Es eso?

Vale. Sin pensar en la solucion, imaginemos por un momento que no se
puede conseguir siempre (que, como digo, no lo se pues no lo he
pensado). Entonces que?
Se le dan mas dias de descanso para el siguiente evento o mala suerte?
 O dicho de otro modo, si al hacer los emparejamientos del evento N,
no se pueden dar suficientes dias de descanso todos desde el N-1, cual
es el algoritmo para decidir a quien se sacrifica?


El día 30 de octubre de 2014, 15:33, Peon Blanco
peonblanc...@gmail.com escribió:
 Evento - 1
 escuela-1 vs escuela-2
 escuela-3 vs escuela-4
 escuela-5 vs escuela-6
 escuela-7 vs escuela-8
 escuela-9 vs escuela-10
 Evento - 2
 escuela-1 vs escuela-3
 escuela-2 vs escuela-4
 escuela-7 vs escuela-6
 escuela-5 vs escuela-9
 escuela-8 vs escuela-10
 Evento - 3
 escuela-10 vs escuela-1
 escuela-9 vs escuela-2
 escuela-8 vs escuela-3
 escuela-7 vs escuela-4
 escuela-6 vs escuela-5


 la intención es hacer una lista o roll de competencia donde los
 participantes tengan el mayor tiempo para descansar
 por ejemplo escuela-10 evento dos y evento 3 esta uno después del otro  lo
 que busco es que el programa detecte esto y lo ponga en el evento 3  lugar 4
 por ejemplo


 El 30 de octubre de 2014, 12:04, Jose Caballero jcaballero@gmail.com
 escribió:

 Me resulta complicado seguir la explicacion...
 Parece ser algun tipo de liga (tipo liga deportiva o algo parecido).
 Pero no me queda claro si es por eliminatorias, o se deben enfrentar
 todos con todos, por ejemplo.
 Y no me queda clara la diferencia entre evento y encuentro.

 El día 30 de octubre de 2014, 13:34, Peon Blanco
 peonblanc...@gmail.com escribió:
  Hola buen día tengo alguna duda no se si es posible.
 
  tengo datos que adquiero de una base de datos sqlite podrían ser los
  siguientes.
  escuela-1
  escuela-2
  escuela-3
  escuela-4
  escuela-5
  escuela-6
  escuela-7
  escuela-8
  escuela-9
  escuela-10
 
  estos datos son para competencias(3) voy comparando las escuelas para
  definir el orden de los encuentros al momento lo hago
 
  Datos=Total de escuelas x eventos 
  DATOS=random.sample(DATOS, len(DATOS))
 
  escuela-1 vs escuela-2
  escuela-3 vs escuela-4
  escuela-5 vs escuela-6
  escuela-7 vs escuela-8
  escuela-9 vs escuela-10
  escuela-1 vs escuela-3
  escuela-2 vs escuela-4
  escuela-7 vs escuela-6
  escuela-5 vs escuela-9
  escuela-8 vs escuela-10
  escuela-10 vs escuela-1
  escuela-9 vs escuela-2
  escuela-8 vs escuela-3
  escuela-7 vs escuela-4
  escuela-6 vs escuela-5
 
 
  y los trae de esta forma
 
  lo que quiero realizar pero no tengo idea de como es tratar de poner los
  eventos mas o menos cada 5 encuentros.
  que cada escuela tenga entre 4 a 5 eventos de descanso.
 
  espero haberme explicado
 
 
  ___
  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] Separar un string en dos reglones?

2014-09-09 Por tema Jose Caballero
Hola Chema,

no estoy seguro de que eso sea lo que quiere.
Decia dividir el string en 2 partes. Con tu solucion se divide en N partes.
Necesitamos que Diego explique mejor lo que necesita.

saludos
Jose

2014-09-09 4:57 GMT-04:00 Chema Cortes pych...@gmail.com:

 El 8 de septiembre de 2014, 23:46, DiegoUG diego.uribe.ga...@gmail.com
 escribió:

 Lorem ipsum dolor sit amet, vis ludus veniam numquam et.


 Usa el poder las expresiones regulares:

 import re

 pat = re.compile((.{24,}?\W))

 txt = Lorem ipsum dolor sit amet, vis ludus veniam numquam et.
 res = [x.strip() for x in pat.split(txt) if x]


 --
 Hyperreals *R  Quarks, bits y otras criaturas infinitesimales:
 http://ch3m4.org/blog
 Buscador Python Hispano: http://ch3m4.org/python-es

 ___
 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] why builtin functions?

2014-08-05 Por tema Jose Caballero
http://www.diveintopython.net/power_of_introspection/built_in_functions.html

even I don't understand the explanation.
Anyways, I stick with my original attitude: I don't know and I don't
care, I just learn how to use it.
___
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] why builtin functions?

2014-08-05 Por tema Jose Caballero
Evidentemente este mensaje no era para la lista  :)
Era para un compagnero de curro...

Sin embargo, ya que se me ha escapado, puedo plantear la pregunta aqui
en este foro.
El debate que teniamos mi colega y yo durante el almuerzo era por que
python tiene funciones y no se limita a implementar metodos de clase.
En particular, mi colega me pregunta que por que python  implementa la
funcion  len( )   pero no existe el metodo len() para clases como
list, string, etc.
Mi respuesta ya ha quedado clara, ni lo se ni me importa...  Pero
ahora he de admitir que tengo cierta curiosidad...

Jose


2014-08-05 13:46 GMT-04:00 Jose Caballero jcaballero@gmail.com:
 http://www.diveintopython.net/power_of_introspection/built_in_functions.html

 even I don't understand the explanation.
 Anyways, I stick with my original attitude: I don't know and I don't
 care, I just learn how to use it.
___
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] why builtin functions?

2014-08-05 Por tema Jose Caballero
gracias por los comentarios!!

El día 5 de agosto de 2014, 19:59, Daπid davidmen...@gmail.com escribió:
 On 6 August 2014 00:43, Jose Caballero jcaballero@gmail.com wrote:

 En particular, mi colega me pregunta que por que python  implementa la
 funcion  len( )   pero no existe el metodo len() para clases como
 list, string, etc.


 Sí existe, pero se llama __len__(). La existencia de algunos builtins está
 clara: son propiedades muy básicas útiles para muchos objetos diferentes. Si
 simplemente existiera el método .len(), un programador perezoso podría
 llamar al método correspodiente .size() o .shape() (e.g.: arrays de Numpy),
 y trabajar con secuencias sería mucho más difícil. ¿Cómo de larga es? ¿Tiene
 el método len()?

 Al fijar un método mágico y un builtin como alias, Python enfuerza una API
 concreta para cualquier tipo de secuencias.

 Funciones como max() o min() son operaciones muy comunes, que se benefician
 enormemente de estar programadas en C. De nuevo, las secuencias en la
 biblioteca estandard podrían haber implementado .max() en C, pero entonces
 tendríamos que volver a reimplementarlo para cada nuevo clase que creáramos
 (y la API C es dura).

 El caso de type() es que el intérprete de Python sabe mejor qué es cualquier
 objeto que ellos mismos. Podría haberse implementado como un método añadido
 automáticamente a cualquier objeto, pero sería añadir magia negra porque:

 class Nothing():
pass

 tendría métodos definidos, y podría ser sobreescrito:

 class Pranker(object):
 def type(self):
  import antrigravity
  return None

 Está claro que debería ser de sólo lectura, pero lo haría un caso especial.


 /David.

 ___
 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] chmod o=g

2014-07-19 Por tema Jose Caballero
Gracias!
Lo miraré con atención. No hago nada con bits y máscaras desde la universidad 
(y eso fue el siglo pasado!) 
Si hubiese un link donde pudiese aprenderme los detalles estaría bien, así no 
tengo que preguntar aquí cada detalle. Mi siguiente necesidad, por ejemplo, es 
quitar permisos: o-w

muchas gracias por el código.
Saludos,
Jose



On Jul 19, 2014, at 6:39, Ricardo Cárdenes ricardo.carde...@gmail.com wrote:

 from os import chmod, stat
 
 # Máscara para los permisos de 'o'
 mask = 010   # esto es 0x
 # Obtenemos los permisos actuales y los de 'g', desplazados a la posición de 
 'o'
 p = stat('file').st_mode
 g = (p  070)  3
 # Aplicamos una máscara a los permisos actuales y ponemos los nuevos
 np = (p  mask) | g
 chmod('file', np)
 
 
 2014-07-18 20:16 GMT+01:00 Jose Caballero jcaballero@gmail.com:
 Hola,
 
 quisiera modificar los permisos de un fichero usando metodos y clases
 de python (que vengan con la instalacion estandar 2.4).
 Es decir, si es posible, no quiero hacer nada tipo
 commands.getoutput('chmod...')
 
 Por lo que he leido hasta el momento, se usa os.stat() y os.chmod()
 Pero no encuentro en google ningun ejemplo de como hacer  chmod o=g
 
 Si alguien tiene un link con ejemplos de ese tipo estare eternamente 
 agradecido.
 
 Saludos
 Jose (sin tildes)
 ___
 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] chmod o=g

2014-07-19 Por tema Jose Caballero
OK. Creo que ya puedo seguir yo solo  :)
Muchas gracias!

El día 19 de julio de 2014, 19:14, Ricardo Cárdenes
ricardo.carde...@gmail.com escribió:
 En el fondo es sencillo. Ten en cuenta que esos permisos forman grupos de
 bits, en plan rwxrwxrwx, de manera que es más sencillo expresarlos en
 octal (como la máscara). Hay más cosas que puedes tocar ahí, como permisos
 suid/sgid etc, pero lo que te interesa son los nueve bits de menos peso,
 agrupados como ugo, en ese orden.

 Quitar el permiso w a o es tan sencillo como:

   np = p  15


 2014-07-19 14:12 GMT+01:00 Jose Caballero jcaballero@gmail.com:

 Gracias!
 Lo miraré con atención. No hago nada con bits y máscaras desde la
 universidad (y eso fue el siglo pasado!)
 Si hubiese un link donde pudiese aprenderme los detalles estaría bien, así
 no tengo que preguntar aquí cada detalle. Mi siguiente necesidad, por
 ejemplo, es quitar permisos: o-w

 muchas gracias por el código.
 Saludos,
 Jose



 On Jul 19, 2014, at 6:39, Ricardo Cárdenes ricardo.carde...@gmail.com
 wrote:

 from os import chmod, stat

 # Máscara para los permisos de 'o'
 mask = 010   # esto es 0x
 # Obtenemos los permisos actuales y los de 'g', desplazados a la posición
 de 'o'
 p = stat('file').st_mode
 g = (p  070)  3
 # Aplicamos una máscara a los permisos actuales y ponemos los nuevos
 np = (p  mask) | g
 chmod('file', np)


 2014-07-18 20:16 GMT+01:00 Jose Caballero jcaballero@gmail.com:

 Hola,

 quisiera modificar los permisos de un fichero usando metodos y clases
 de python (que vengan con la instalacion estandar 2.4).
 Es decir, si es posible, no quiero hacer nada tipo
 commands.getoutput('chmod...')

 Por lo que he leido hasta el momento, se usa os.stat() y os.chmod()
 Pero no encuentro en google ningun ejemplo de como hacer  chmod o=g

 Si alguien tiene un link con ejemplos de ese tipo estare eternamente
 agradecido.

 Saludos
 Jose (sin tildes)
 ___
 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/


  1   2   3   4   >