cuerda es un entorno de programación Python. El objetivo principal de la cuerda Python es proporcionar características como auto-realización, refactorizaciones, asistencia contenido y contornos.
Refactoring: En los últimos años se ha convertido en una refactorización tarea básica de la programación diaria, especialmente en la comunidad Java. En las metodologías de programación ágiles, como Extreme Programación, Refactoring es una de las prácticas fundamentales.
Algunos IDEs soportan algunas refactorizaciones básicos como 'PyDev' (que utiliza la bicicleta hombre de la reparación). Estos entornos de desarrollo tienen un conjunto limitado de refactorizaciones y fallan al hacer refactorizaciones que necesitan saber el tipo de objetos en el código fuente (especialmente para proyectos relativamente grandes). cuerda intenta proporcionar un amplio conjunto de refactorizaciones. Algunos de los refactorizaciones requieren tipo de inferencia que se describe más adelante.
Finalización automática: Una de las características básicas de IDEs modernos es la disponibilidad de auto-realización. Algunos IDE de Python tienen soporte de auto-completar, pero de forma limitada. Dado que el tipo de muchas variables que no se puede deducir de simple análisis del código fuente. Auto-completando nombres módulos, nombres de clase, los métodos estáticos, métodos de clase, nombres de funciones y nombres de variables son fáciles. Pero auto-completar los métodos y atributos de un objeto es difícil. Debido a que el IDE necesita conocer el tipo de objeto que no se puede lograr fácilmente la mayoría de las veces en lenguajes dinámicos. cuerda utiliza algoritmos Tipo de inferencia para resolver este problema.
Tipo Inferencia: Una desventaja de los lenguajes dinámicos como Python es que no se puede saber el tipo de variables mediante un simple análisis de código fuente del programa la mayor parte del tiempo. Conocer el tipo de variables es muy esencial para proporcionar muchas de las refactorizaciones y auto-terminaciones. cuerda utilizará tipo de inferencia para superar este problema.
Tipo estático inferencia utiliza el código fuente del programa que adivinar el tipo de objetos. Pero los programas de pitón tipo de inferencia es muy duro. Ha habido algunos intentos, aunque no muy exitosas (ejemplos: psico: sólo str e int tipos, Starkiller: no fue puesto en libertad y ShedSkin: bueno pero limitadas). Ellos donde dirigen principalmente a la aceleración de los programas de Python mediante la transformación de su código en otros lenguajes con tipos en lugar de construir IDEs. Estos algoritmos pueden ser útiles.
Hay otro enfoque hacia el tipo de inferencia. Ese es el análisis de los programas en ejecución. Este enfoque dinámico registra los tipos variables se asignan a durante la ejecución del programa. Aunque este enfoque es mucho más fácil de implementar que la alternativa, es limitada. Sólo las partes del programa que se ejecutan se analizan. Si los desarrolladores a escribir las pruebas unitarias y utilizar el desarrollo basado en pruebas este enfoque funciona muy bien
¿Qué hay de nuevo en esta versión:.
- codeassist: mejor manejo de Unicode en docstrings
- codeassist: manejo de incógnitas orden interna, como sys.stdout
- codeassist: propuestas ámbitos y tipos revisados
- comandos FS: manejar los cambios ui tripulación hg
- patchedast: manejar nodo ExtSlice
¿Qué hay de nuevo en la versión 0.9.2:
- El módulo autoimportación ahora es compatible con el almacenamiento en caché todos los sub-módulos de un módulo.
- La recursividad al cargar los módulos se ha solucionado.
- Se ha añadido soporte básico para setuptools.
- El método extracto ha sido cambiado para manejar actualizaciones variables condicionales.
¿Qué hay de nuevo en la versión 0.9.1:
- La variable import_dynload_stdmods se ha añadido para reducir el tamaño de la variable extension_modules.
- Algunos errores específicos de Windows se fijaron.
¿Qué hay de nuevo en la versión 0.9:
- Cambios desde 0.8.4:
- soporte Darcs VCS
- manejar archivos con mac de final de línea
- No buscar todos los archivos cuando inlining una variable local
- problemas de ruta fija cygwin Algunos de los cambios desde 0,8:
- variable de procesos en línea en otros módulos
- agregó `rope.contrib.findit.find_definition ()`
- mejor módulo de extensión manipulación
- agregó `rope.contrib.findit.find_definition ()`
- añadido soporte GIT en comandos FS
- parámetros de procesos en línea
- volver importar nombres subrayados en movimiento
- agregó `codeassist.get_calltip ()`
- agregó `libutils.analyze_modules ()`
- agregó `` proyecto soa_followed_calls`` config
- `libutils.report_change ()` `lee automatic_soa`
- manejo decorador propiedad
Requisitos :
- Python
Comentarios que no se encuentran