Nuestro SD Source Code Search Engine (SCSE) puede proporcionar este resultado directamente.
El SCSE proporciona una forma de buscar muy rápidamente en grandes conjuntos de archivos utilizando parte de la estructura del lenguaje para permitir consultas precisas y minimizar los falsos positivos. Maneja una amplia variedad de idiomas , incluso al mismo tiempo, incluyendo Python. Una GUI muestra resultados de búsqueda y una página de texto real del archivo que contiene un hit seleccionado.
Utiliza información léxica de los lenguajes de origen como base para las consultas, compuesta por varias palabras clave de idioma y tokens de patrones que coinciden con elementos de lenguaje de contenido variable. SCSE conoce los tipos de lexemas disponibles en el idioma. Uno puede buscar un identificador genérico (utilizando el token de consulta I) o un identificador que coincida con alguna expresión regulatr. Similarmente, on puede buscar una cadena genérica (utilizando el token de consulta "S" para "cualquier tipo de literal de cadena") o para un tipo específico de cadena (para Python incluyendo "UnicodeStrings", cadenas no unicode, etc., que colectivamente componen el conjunto de cosas de Python que comprende "S").
Así que una búsqueda:
'for' ... I=ij*
encuentra la palabra clave 'para' cerca ("...") un identificador cuyo prefijo es 'ij' y te muestra todos los éxitos. (Espacio en blanco específico del lenguaje, incluyendo los saltos de línea y los comentarios son ignorados
Una búsqueda trivial:
S
encuentra todos los literales de cadena Esto es a menudo una muy gran conjunto: -..}
Una búsqueda
UnicodeStrings
encuentra todos los literales de cadena que se definen como Unicode léxico Cuerdas (u "...")
Lo que quiere son todas las cadenas que no sean UnicodeStrings. El SCSE proporciona un operador "restar" que resta hits de un tipo que se superponen hits de otro. Entonces, la pregunta, "¿qué cadenas no son Unicode" se expresa concisamente como:
S-UnicodeStrings
Todos los impactos se muestra será la cadenas que no son cadenas Unicode, su pregunta precisa.
El SCSE proporciona servicios de registro para que pueda registrar visitas. Puede ejecutar SCSE desde una línea de comando, habilitando una consulta con guiones para su respuesta. Poner esto en un script de comando proporcionaría una herramienta que da su respuesta directamente.
'desde __future__ import unicode_literals' –
@Ignacio, suena prometedor! Pero, ¿se opondrá si el código también importa módulos de terceros que no lo conocen? –
No, las directivas de compilación a través de '__future__' solo afectan el módulo actual. –