Handle SPS packages like a breeze.
Project description
scielo.packtools
================
Canivete suiço para a inspeção de pacotes SPS.
Instalação
----------
Python Package Index (recomendado):
```bash
pip install packtools
```
Pip + git (versão de desenvolvimento):
```bash
pip install -e git+git://github.com/scieloorg/packtools.git#egg=packtools
```
Repositório de códigos (versão de desenvolvimento):
```bash
git clone https://github.com/scieloorg/packtools.git
cd packtools
python setup.py install
```
Configuração do Catálogo XML
----------------------------
Um Catálogo XML é um mecanismo de *lookup* que pode ser utilizado para evitar que requisições de
rede sejam realizadas para carregar DTDs externas.
Por questões de desempenho e segurança, as instâncias de `stylechecker.XML` não realizam
conexões de rede, portanto é extremamente recomendável que seja configurado um Catálogo XML,
que traduz ids públicos para uris de arquivos locais.
O `packtools` já apresenta um catálogo padrão, que para ser utilizado basta definir a
variável de ambiente `XML_CATALOG_FILES` com o caminho absoluto para
`packtools/catalogs/scielo-publishing-schema.xml`.
Mais informações em http://xmlsoft.org/catalog.html#Simple
Utilitário `stylechecker`
-------------------------
Após a instalação, o programa `stylechecker` deverá estar disponível no seu emulador de terminal.
Esse programa realiza a validação de um determinado XML no formato SPS contra a DTD, e
apresenta uma lista dos erros encontrados. Também é possível *anotar* os erros encontrados em uma
cópia do XML em validação, por meio do argumento opcional `--annotated`.
O utilitário `stylechecker` tenta carregar a DTD externa, especificada na declaração DOCTYPE do
XML. Para evitar esse comportamento, utilize a opção `--nonetwork`.
A função *ajuda* pode ser utilizada com a opção `-h`, conforme o exemplo:
```bash
$ stylechecker -h
usage: stylechecker [-h] [--annotated] [--nonetwork] [--assetsdir ASSETSDIR]
[--version]
XML [XML ...]
stylechecker cli utility
positional arguments:
XML filesystem path or URL to the XML
optional arguments:
-h, --help show this help message and exit
--annotated reproduces the XML with notes at elements that have
errors
--nonetwork prevents the retrieval of the DTD through the network
--assetsdir ASSETSDIR
lookup, at the given directory, for each asset
referenced by the XML
--version show program's version number and exit
```
Exemplo do resultado da validação:
```bash
$ stylechecker 0034-8910-rsp-48-2-0206.xml
[
{
"_xml": "0034-8910-rsp-48-2-0206.xml",
"dtd_errors": [
"Value \"foo\" for attribute ref-type of xref is not among the enumerated set"
],
"is_valid": false,
"sps_errors": [
"Element 'abstract': Unexpected attribute xml:lang.",
"Element 'article-title': Unexpected attribute xml:lang.",
"Element 'counts': Missing element or wrong value in equation-count.",
"Element 'xref', attribute ref-type: Invalid value \"foo\".",
"Element 'person-group': Missing attribute person-group-type.",
"Element 'fn': Missing attribute fn-type.",
"Element 'article': Missing SPS version at the attribute specific-use."
]
}
]
```
History
=======
0.7 (2015-03-13)
----------------
* Added SciELO PS 1.2 support.
* Added the apparent sourceline of the element raising validation errors
(stylechecker).
* Added the option *--nocolors* to prevent stylechecker output from being
colorized by ANSI escape sequences.
* stylechecker now prints log messages to stdout. The option *--loglevel*
should be used to define the log level. Options are: DEBUG, INFO, WARNING,
ERROR or CRITICAL.
* SciELO PS 1.2 schematron uses EXSLT querybinding.
* Better error handling while analyzing multiple XML files with stylechecker.
0.6.4 (2015-02-03)
------------------
* Fixes a bug that causes malfunctioning on stylechecker
while expanding wildcards on windows.
* Major semantic changes at *--assetsdir* options. Now it is always turned ON,
and the option is used to set the lookup basedir. By default,
the XML basedir is used.
0.6.3 (2015-02-02)
------------------
* stylechecker CLI utility overhaul:
* The basic output is now presented as JSON structure.
* The option *--assetsdir* lookups, in the given dir, for each asset referenced in
XML. The *--annotated* option now writes the output to a file. The
utility now takes more than one XML a time.
* *pygments*, if installed, will be used to display pretty JSON outputs.
0.6.2 (2015-01-23)
------------------
* Added method `XMLValidator.lookup_assets`.
* Added property `XMLValidator.assets`.
* Fixed minor issue that would cause //element-citation[@publication-type="report"]
to be reported as invalid.
* Fixed minor issue that would erroneously identify an element-citation element
as not being child of element ref.
0.6.1 (2014-11-28)
------------------
* Minor fix to implement changes from SciELO PS 1.1.1.
0.6 (2014-10-28)
----------------
* Python 3 support.
* Project-wide code refactoring.
* `packtools.__version__` attribute to get the package version.
* Distinction between classes of error with the attribute `StyleError.level`.
0.5 (2014-09-29)
----------------
* Basic implementation of XML style rules according to SciELO PS version 1.1.
* `stylechecker` and `packbuilder` console utilities.
* Major performance improvements on `XMLValidator` instantiation, when used
with long-running processes (9.5x).
================
Canivete suiço para a inspeção de pacotes SPS.
Instalação
----------
Python Package Index (recomendado):
```bash
pip install packtools
```
Pip + git (versão de desenvolvimento):
```bash
pip install -e git+git://github.com/scieloorg/packtools.git#egg=packtools
```
Repositório de códigos (versão de desenvolvimento):
```bash
git clone https://github.com/scieloorg/packtools.git
cd packtools
python setup.py install
```
Configuração do Catálogo XML
----------------------------
Um Catálogo XML é um mecanismo de *lookup* que pode ser utilizado para evitar que requisições de
rede sejam realizadas para carregar DTDs externas.
Por questões de desempenho e segurança, as instâncias de `stylechecker.XML` não realizam
conexões de rede, portanto é extremamente recomendável que seja configurado um Catálogo XML,
que traduz ids públicos para uris de arquivos locais.
O `packtools` já apresenta um catálogo padrão, que para ser utilizado basta definir a
variável de ambiente `XML_CATALOG_FILES` com o caminho absoluto para
`packtools/catalogs/scielo-publishing-schema.xml`.
Mais informações em http://xmlsoft.org/catalog.html#Simple
Utilitário `stylechecker`
-------------------------
Após a instalação, o programa `stylechecker` deverá estar disponível no seu emulador de terminal.
Esse programa realiza a validação de um determinado XML no formato SPS contra a DTD, e
apresenta uma lista dos erros encontrados. Também é possível *anotar* os erros encontrados em uma
cópia do XML em validação, por meio do argumento opcional `--annotated`.
O utilitário `stylechecker` tenta carregar a DTD externa, especificada na declaração DOCTYPE do
XML. Para evitar esse comportamento, utilize a opção `--nonetwork`.
A função *ajuda* pode ser utilizada com a opção `-h`, conforme o exemplo:
```bash
$ stylechecker -h
usage: stylechecker [-h] [--annotated] [--nonetwork] [--assetsdir ASSETSDIR]
[--version]
XML [XML ...]
stylechecker cli utility
positional arguments:
XML filesystem path or URL to the XML
optional arguments:
-h, --help show this help message and exit
--annotated reproduces the XML with notes at elements that have
errors
--nonetwork prevents the retrieval of the DTD through the network
--assetsdir ASSETSDIR
lookup, at the given directory, for each asset
referenced by the XML
--version show program's version number and exit
```
Exemplo do resultado da validação:
```bash
$ stylechecker 0034-8910-rsp-48-2-0206.xml
[
{
"_xml": "0034-8910-rsp-48-2-0206.xml",
"dtd_errors": [
"Value \"foo\" for attribute ref-type of xref is not among the enumerated set"
],
"is_valid": false,
"sps_errors": [
"Element 'abstract': Unexpected attribute xml:lang.",
"Element 'article-title': Unexpected attribute xml:lang.",
"Element 'counts': Missing element or wrong value in equation-count.",
"Element 'xref', attribute ref-type: Invalid value \"foo\".",
"Element 'person-group': Missing attribute person-group-type.",
"Element 'fn': Missing attribute fn-type.",
"Element 'article': Missing SPS version at the attribute specific-use."
]
}
]
```
History
=======
0.7 (2015-03-13)
----------------
* Added SciELO PS 1.2 support.
* Added the apparent sourceline of the element raising validation errors
(stylechecker).
* Added the option *--nocolors* to prevent stylechecker output from being
colorized by ANSI escape sequences.
* stylechecker now prints log messages to stdout. The option *--loglevel*
should be used to define the log level. Options are: DEBUG, INFO, WARNING,
ERROR or CRITICAL.
* SciELO PS 1.2 schematron uses EXSLT querybinding.
* Better error handling while analyzing multiple XML files with stylechecker.
0.6.4 (2015-02-03)
------------------
* Fixes a bug that causes malfunctioning on stylechecker
while expanding wildcards on windows.
* Major semantic changes at *--assetsdir* options. Now it is always turned ON,
and the option is used to set the lookup basedir. By default,
the XML basedir is used.
0.6.3 (2015-02-02)
------------------
* stylechecker CLI utility overhaul:
* The basic output is now presented as JSON structure.
* The option *--assetsdir* lookups, in the given dir, for each asset referenced in
XML. The *--annotated* option now writes the output to a file. The
utility now takes more than one XML a time.
* *pygments*, if installed, will be used to display pretty JSON outputs.
0.6.2 (2015-01-23)
------------------
* Added method `XMLValidator.lookup_assets`.
* Added property `XMLValidator.assets`.
* Fixed minor issue that would cause //element-citation[@publication-type="report"]
to be reported as invalid.
* Fixed minor issue that would erroneously identify an element-citation element
as not being child of element ref.
0.6.1 (2014-11-28)
------------------
* Minor fix to implement changes from SciELO PS 1.1.1.
0.6 (2014-10-28)
----------------
* Python 3 support.
* Project-wide code refactoring.
* `packtools.__version__` attribute to get the package version.
* Distinction between classes of error with the attribute `StyleError.level`.
0.5 (2014-09-29)
----------------
* Basic implementation of XML style rules according to SciELO PS version 1.1.
* `stylechecker` and `packbuilder` console utilities.
* Major performance improvements on `XMLValidator` instantiation, when used
with long-running processes (9.5x).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
packtools-0.7.tar.gz
(420.9 kB
view details)
Built Distribution
packtools-0.7-py2.py3-none-any.whl
(606.0 kB
view details)
File details
Details for the file packtools-0.7.tar.gz
.
File metadata
- Download URL: packtools-0.7.tar.gz
- Upload date:
- Size: 420.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a06bbe88a737f4e3d4a6edbe7b71d0f7194d8bb8bc48d0a60c6d2a2bbbaab708 |
|
MD5 | 032e19091706e0d878e45d0a128e7866 |
|
BLAKE2b-256 | ddc425af179edb1b9e620b0e8480b198b4313b1a614cd67469bc9b43f0a543c3 |
File details
Details for the file packtools-0.7-py2.py3-none-any.whl
.
File metadata
- Download URL: packtools-0.7-py2.py3-none-any.whl
- Upload date:
- Size: 606.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05d5995c48a91c4c3c248def2f29ef7f2177aa121f66c533288fea59156a978b |
|
MD5 | 591b741f7c47ade860385e68f3c17e47 |
|
BLAKE2b-256 | a4bdc9b081ab84d2499a31fb5f0347b3f243365ef154aa626cd2e4fbf103a7ff |