Compare commits

...

13 Commits

Author SHA1 Message Date
Martin A. Brown 4947542e01
Merge pull request #12 from martin-a-brown/mabrown/version-0.7.15
bump version to 0.7.15
2022-10-23 20:42:44 -07:00
Martin A. Brown 6a00bd0b1e bump version to 0.7.15 2022-10-23 20:41:45 -07:00
Martin A. Brown 8f34526e4f
Merge pull request #11 from martin-a-brown/master
catch up to 0.7.14 (from May 2016) in tLDP repo:  add --version flag
2022-10-23 20:39:08 -07:00
Martin A. Brown 0f70fd1aad
Merge pull request #10 from martin-a-brown/mabrown/support-python-3.10-and-ubuntu-22.04
support Python3.8+: fix import for MutableMapping and other minor fixes
2022-10-23 15:33:28 -07:00
Martin A. Brown 8be6d14517 drop Python2.x testing, support Python3.9+ 2022-10-23 12:12:22 -07:00
Martin A. Brown fafc30ac0e argparse drops private method _ensure_value
The `argparse` library refactored to improvem performance of common use
cases.  Handling a list is not a common scenario and the function
_ensure_values (which was obviously private) disappeared.

This commit simply uses the same strategy that the upstream `argparse`
maintainers used.  Since this is a subclass of a private object type
anyway, this is expected sort of behaviour.
2022-10-23 18:46:01 +00:00
Martin A. Brown 4cb5e881d2 MutableMapping moves into collections.abc 2022-10-23 18:28:50 +00:00
Martin A. Brown 7b756c7a18 bumping version to tldp-0.7.14 2016-05-16 09:56:15 -07:00
Martin A. Brown beb920dd58 add a test for the new --version CLI 2016-05-16 09:38:09 -07:00
Martin A. Brown 9f5b7c2ded use unicode literals here, too 2016-05-16 09:37:46 -07:00
Martin A. Brown a7fa31e35e add entry for --version to manpage 2016-05-16 09:30:30 -07:00
Martin A. Brown 47b2930264 add --version handling logic in driver.py 2016-05-16 09:30:18 -07:00
Martin A. Brown e879f2e638 adding --version to CLI config 2016-05-16 09:29:53 -07:00
10 changed files with 82 additions and 25 deletions

View File

@ -1,8 +1,8 @@
%define sourcename tldp
%define name python-tldp
%define version 0.7.13
%define unmangled_version 0.7.13
%define unmangled_version 0.7.13
%define version 0.7.15
%define unmangled_version 0.7.15
%define unmangled_version 0.7.15
%define release 1
Summary: automatic publishing tool for DocBook, Linuxdoc and Asciidoc

12
debian/changelog vendored
View File

@ -1,3 +1,13 @@
tldp (0.7.15-1) unstable; urgency=low
* support Python3.8+: fix import for MutableMapping and other minor fixes
tldp (0.7.14-1) unstable; urgency=low
* Add --version option.
-- Martin A. Brown <martin@linux-ip.net> Mon, 16 May 2016 16:54:47 +0000
tldp (0.7.13-1) unstable; urgency=low
* Fix testsuite when run as root (Closes: #824201).
@ -8,4 +18,4 @@ tldp (0.7.12-1) unstable; urgency=low
* Initial release (Closes: #822181)
-- Martin A. Brown <martin@linux-ip.net> Wed, 27 Apr 2016 17:09:56 +0000
-- Martin A. Brown <martin@linux-ip.net> Wed, 27 Apr 2016 17:09:56 +0000

View File

@ -14,7 +14,8 @@ Description
:program:`ldptool` creates chunked HTML, single-page HTML, PDF and plain text
outputs for each source document it is passed as a *pathname*. See
`Source document discovery`_.
`Source document discovery`_. It will compare the source document and output
document and rebuild an output only if the content has changed.
If it is not passed any arguments, `ldptool` will collect all of the
directories specified with the --sourcedir option and scan through these
@ -47,6 +48,9 @@ Action options
-h, --help
show a help message and exit
-V, --version
print out the version number
-b, --build
Build LDP documentation into the `--builddir` and exit.
This is the default action if no other action is specified.
@ -166,14 +170,15 @@ span multiple files. Although more than half of the LDP document collection
consists of single-file HOWTO contributions, there are a number of documents
that are composed of dozens, even hundreds of files. In order to accommodate
both the simple documents and these much more complex documents, LDP adopted a
simple (unoriginal) naming strategy to allow a single document to span
simple (though not unique) naming strategy to allow a single document to span
multiple files::
Each document is referred to by a stem, which is the filename without any
extension. A single file document is simple STEM.EXT. A document that
requires many files must be contained in a directory with the STEM name.
Therefore, the primary source document will always be called either STEM.EXT
or STEM/STEM.EXT.
Each document is referred to by a stem, which is the filename
without any extension. A single file document is simple
STEM.EXT. A document that requires many files must be contained
in a directory with the STEM name. Therefore, the primary
source document will always be called either STEM.EXT or
STEM/STEM.EXT.
(If there is a STEM/STEM.xml and STEM/STEM.sgml in the same directory, that is
an error, and `ldptool` will freak out and shoot pigeons.)

View File

@ -1,6 +1,6 @@
.\" Man page generated from reStructuredText.
.
.TH "LDPTOOL" "1" "2016-04-21" "1.9.2" "ldptool"
.TH "LDPTOOL" "1" "May 16, 2016" "1.9.2" "ldptool"
.SH NAME
ldptool \- DocBook, Linuxdoc and Asciidoc build/publishing tool.
.
@ -37,7 +37,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.sp
\fBldptool\fP creates chunked HTML, single\-page HTML, PDF and plain text
outputs for each source document it is passed as a \fIpathname\fP\&. See
\fI\%Source document discovery\fP\&.
\fI\%Source document discovery\fP\&. It will compare the source document and output
document and rebuild an output only if the content has changed.
.sp
If it is not passed any arguments, \fIldptool\fP will collect all of the
directories specified with the \-\-sourcedir option and scan through these
@ -81,6 +82,9 @@ generate configuration files that it can then take as input
.B \-h\fP,\fB \-\-help
show a help message and exit
.TP
.B \-V\fP,\fB \-\-version
print out the version number
.TP
.B \-b\fP,\fB \-\-build
Build LDP documentation into the \fI\-\-builddir\fP and exit.
This is the default action if no other action is specified.
@ -204,18 +208,19 @@ span multiple files. Although more than half of the LDP document collection
consists of single\-file HOWTO contributions, there are a number of documents
that are composed of dozens, even hundreds of files. In order to accommodate
both the simple documents and these much more complex documents, LDP adopted a
simple (unoriginal) naming strategy to allow a single document to span
simple (though not unique) naming strategy to allow a single document to span
multiple files:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
Each document is referred to by a stem, which is the filename without any
extension. A single file document is simple STEM.EXT. A document that
requires many files must be contained in a directory with the STEM name.
Therefore, the primary source document will always be called either STEM.EXT
or STEM/STEM.EXT.
Each document is referred to by a stem, which is the filename
without any extension. A single file document is simple
STEM.EXT. A document that requires many files must be contained
in a directory with the STEM name. Therefore, the primary
source document will always be called either STEM.EXT or
STEM/STEM.EXT.
.ft P
.fi
.UNINDENT

View File

@ -12,6 +12,7 @@ import uuid
import errno
import codecs
import random
import unittest
from tempfile import NamedTemporaryFile as ntf
from argparse import Namespace
@ -20,6 +21,7 @@ from tldp.typeguesser import knowndoctypes
from tldp.inventory import stypes, status_types
from tldp.sources import SourceDocument
from tldp.outputs import OutputDirectory
from tldp import VERSION
# -- Test Data
import example
@ -127,6 +129,22 @@ class TestDriverShowStatustypes(TestToolsFilesystem):
self.assertEqual(exitcode, os.EX_OK)
class TestDriverShowVersion(unittest.TestCase):
def test_show_version(self):
stdout = io.StringIO()
result = tldp.driver.show_version(Namespace(), file=stdout)
self.assertEqual(result, os.EX_OK)
stdout.seek(0)
data = stdout.read().strip()
for status in status_types:
self.assertEqual(VERSION, data)
def test_run_statustypes(self):
exitcode = tldp.driver.run(['--version'])
self.assertEqual(exitcode, os.EX_OK)
class TestDriverSummary(TestInventoryBase):
def test_run_summary(self):

View File

@ -3,10 +3,11 @@
# Copyright (c) 2016 Linux Documentation Project
from __future__ import absolute_import
from __future__ import unicode_literals
import tldp.config
import tldp.outputs
import tldp.sources
import tldp.inventory
VERSION = "0.7.13"
VERSION = "0.7.15"

View File

@ -8,7 +8,6 @@ from __future__ import unicode_literals
import os
import argparse
import copy as _copy
import logging
@ -30,7 +29,7 @@ class DirectoriesExist(argparse._AppendAction):
message = message % (values, option_string)
logger.critical(message)
raise ValueError(message)
items = _copy.copy(argparse._ensure_value(namespace, self.dest, []))
items = getattr(namespace, self.dest, [])
items.append(values)
setattr(namespace, self.dest, items)
@ -147,6 +146,11 @@ def collectconfiguration(tag, argv):
action='store_true', default=False,
help='show status types and classes [%(default)s]')
g.add_argument('--version',
'-V',
action='store_true', default=False,
help='print out the version number [%(default)s]')
# -- collect up the distributed configuration fragments
#
for cls in tldp.typeguesser.knowndoctypes:

View File

@ -24,6 +24,7 @@ from tldp.config import collectconfiguration
from tldp.utils import arg_isloglevel, arg_isdirectory
from tldp.utils import swapdirs, sameFilesystem
from tldp.doctypes.common import preamble, postamble
from tldp import VERSION
# -- Don't freak out with IOError when our STDOUT, handled with
# head, sed, awk, grep, etc; and, also deal with a user's ctrl-C
@ -52,6 +53,11 @@ ERR_UNKNOWNARGS = "Unknown arguments received: "
ERR_EXTRAARGS = "Extra arguments received: "
def show_version(config, *args, **kwargs):
file = kwargs.get('file', sys.stdout)
print(VERSION, file=file)
return os.EX_OK
def show_doctypes(config, *args, **kwargs):
if args:
return ERR_EXTRAARGS + ' '.join(args)
@ -508,6 +514,9 @@ def collectWorkset(config, args):
def handleArgs(config, args):
if config.version:
return show_version(config, *args)
if config.doctypes:
return show_doctypes(config, *args)

View File

@ -5,10 +5,15 @@
from __future__ import absolute_import, division, print_function
import collections
import sys
if sys.version_info[:2] >= (3, 8): # pragma: no cover
from collections.abc import MutableMapping
else: # pragma: no cover
from collections import MutableMapping
class LDPDocumentCollection(collections.MutableMapping):
class LDPDocumentCollection(MutableMapping):
'''a dict-like container for DocumentCollection objects
Intended to be subclassed.

View File

@ -4,7 +4,7 @@
# and then run "tox" from this directory.
[tox]
envlist = py27, py34, py35
envlist = py39, py310
skip_missing_interpreters = True
[testenv]