Skip to main content

hook_tools

Estas son herramientas que ayudan a mantener el código en los distintos repositorios del proyecto omegaUp con un estilo consistente.

Para agregar hook_tools a tu repositorio:

  • Agrega hook_tools como submódulo de git en algún lugar de tu repositorio.
  • Agrega un archivo .lint.config.json en la raíz de tu repositorio.
  • Invoca hook_tools/lint.py validate --all en tu archivo .travis.yml o en los git pre-upload hooks.
  • Si estás en un sistema que soporta correr Docker, puedes también correr docker run -v $PWD:/src omegaup/hook_tools validate --all.

.lint.config.json

Este es un diccionario de configuración de los linters que se van a correr. Los linters soportados (con sus respectivas opciones) son:

  • clang-format: Corre ClangFormat.
  • html: Corre HTML Tidy.
    • strict: Un bool que indica si se va a correr en modo estricto
  • javascript: Corre el linter de Prettier.
    • extra_js_linters: Un arreglo con comandos que se van a correr.
  • json: Corre el linter de Prettier.
  • karel: Corre el linter de Prettier.
  • markdown: Corre el linter de Prettier.
  • php: Corre PHP Code Beautifier.
    • standard: Una cadena con la ruta del estándar de phpcbf.
  • problematic-terms: Busca términos problemáticos.
    • terms: Una lista de objetos con las siguientes llaves:
      • regexps: Una lista de expresiones regulares a buscar.
      • message: El mensaje a desplegar.
      • allowlist: (Opcional) Una lista de expresiones regulares. Si está definido y ninguna de estas expresiones regulares hace match con el nombre del archivo, el archivo se ignora.
      • denylist: (Opcional) Una lista de expresiones regulares. Si está definido y alguna de estas expresiones regulares hace match con el nombre del archivo, el archivo se ignora.
  • whitespace: Elimina molestos espacios en blanco, como espacios al final de la línea, múltiples líneas vacías, saltos de línea estilo Windows.
  • style: Corre stylelint.
  • typescript: Corre el linter de Prettier.
  • vue: Corre los linters de javascript y html en las distintas secciones de un Vue template.
    • extra_js_linters: Un arreglo con comandos que se van a correr en la sección <script>..</script> del template.
    • stylelint: Un booleano que determina si también se va a correr stylelint en la sección <style>..</style> del template.
  • python: Corre pep8 y pylint.
    • pep8_config: Una cadena con la ruta del archivo de configuración para pep8.
    • pylint_config: Una cadena con la ruta del archivo de configuración para pylint.
  • custom: Corre comandos personalizados.
    • commands: Un arreglo con comandos.

Todos los linters soportan dos opciones adicionales:

  • allowlist: Un arreglo con expresiones regulares. Los archivos a considerar para el linter actual deben de hacer match con al menos un regex de este arreglo.
  • denylist: Un arreglo con expresiones regulares. Los archivos a considerar para el linter actual deben de no hacer match con ningún regex de este arreglo.

Comandos personalizados

Tanto el linter custom como javascript soportan comandos personalizados. Estos comandos se van a correr tal-cual con dos argumentos extra: el nombre del archivo (temporal) que debe de actualizarse con el contenido correctamente formateado, y el nombre de archivo original (si se desea escribir información de depuración a stderr). Este comando se ejecutará mediante /bin/bash.

Release files for omegaup-hook-tools 1.0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for omegaup-hook-tools 1.0.9
File Size Uploaded
omegaup_hook_tools-1.0.9.tar.gz 251.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for omegaup-hook-tools 1.0.9
File Interpreter ABI Platform
omegaup_hook_tools-1.0.9-py3-none-any.whl Python 3 none any Details

Total release size: 501.6 kB

Release files / omegaup_hook_tools-1.0.9.tar.gz

Download URL omegaup_hook_tools-1.0.9.tar.gz
Size 251.7 kB
Tags Source
SHA-256 checksum
How to use checksums
86d346005b6df8510947d33a6f8fd6a77dfe48ac03586cff8240eb2539a33a2f
BLAKE2b-256 checksum
How to use checksums
b43cc64176fa37d106d43573f55162ce17cf49e8d2597b0497dfdbc9bfb4d482
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.15

Release files / omegaup_hook_tools-1.0.9-py3-none-any.whl

Download URL omegaup_hook_tools-1.0.9-py3-none-any.whl
Size 249.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
206c02938a9defbd31f729f4298b8fb14405c677058cef6aa1f13e9d8f111771
BLAKE2b-256 checksum
How to use checksums
2e869cd5734e23a06f61838246dee5f3f6d528fbf698d4d339abdb9b084edfe7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.15

Release history Release notifications | RSS feed

This release

1.0.9 This release

2 release files

1.0.8

2 release files

1.0.7

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page