Skip to content

Commit

Permalink
tools: add python-gflags module
Browse files Browse the repository at this point in the history
closure_linter needs the gflags module.

PR-URL: #464
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
  • Loading branch information
Shigeki Ohtsu authored and bnoordhuis committed Jan 16, 2015
1 parent 0cd9546 commit 6242229
Show file tree
Hide file tree
Showing 20 changed files with 4,122 additions and 0 deletions.
1 change: 1 addition & 0 deletions tools/gflags/AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
google-gflags@googlegroups.com
28 changes: 28 additions & 0 deletions tools/gflags/COPYING
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
Copyright (c) 2006, Google Inc.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
62 changes: 62 additions & 0 deletions tools/gflags/ChangeLog
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
Wed Jan 18 13:57:39 2012 Google Inc. <google-gflags@googlegroups.com>

* python-gflags: version 2.0
* No changes from version 1.8.

Wed Jan 18 11:54:03 2012 Google Inc. <google-gflags@googlegroups.com>

* python-gflags: version 1.8
* Don't raise DuplicateFlag when re-importing a module (mmcdonald)
* Changed the 'official' python-gflags email in setup.py/etc
* Changed copyright text to reflect Google's relinquished ownership

Tue Dec 20 17:10:41 2011 Google Inc. <opensource@google.com>

* python-gflags: version 1.7
* Prepare gflags for python 3.x, keeping 2.4 compatibility (twouters)
* If output is a tty, use terminal's width to wrap help-text (wiesmann)
* PORTING: Fix ImportError for non-Unix platforms (kdeus)
* PORTING: Run correctly when termios isn't available (shines)
* Add unicode support to flags (csilvers)

Fri Jul 29 12:24:08 2011 Google Inc. <opensource@google.com>

* python-gflags: version 1.6
* Document FlagValues.UseGnuGetOpt (garymm)
* replace fchmod with chmod to work on python 2.4 (mshields)
* Fix bug in flag decl reporting for dup flags (craigcitro)
* Add multi_float, and tests for multi_float/int (simonf)
* Make flagfiles expand in place, to follow docs (dmlynch)
* Raise exception if --flagfile can't be read (tlim)

Wed Jan 26 13:50:46 2011 Google Inc. <opensource@google.com>

* python-gflags: version 1.5.1
* Fix manifest and setup.py to include new files

Mon Jan 24 16:58:10 2011 Google Inc. <opensource@google.com>

* python-gflags: version 1.5
* Add support for flag validators (olexiy)
* Better reporting on UnrecognizedFlagError (sorenj)
* Cache ArgumentParser, to save space (tmarek)

Wed Oct 13 17:40:12 2010 Google Inc. <opensource@google.com>

* python-gflags: version 1.4
* Unregister per-command flags after running the command (dnr)
* Allow key-flags to work with special flags (salcianu)
* Allow printing flags of a specific module (mikecurtis)
* BUGFIX: Fix an error message for float flags (olexiy)
* BUGFIX: Can now import while defining flags (salcianu)
* BUGFIX: Fix flagfile parsing in python (chronos)
* DOC: Better explain the format of --helpxml output (salcianu)
* DOC: Better error message on parse failure (tstromberg)
* Better test coverage under python 2.2 (mshields)
* Added a Makefile for building the packages.

Mon Jan 4 18:46:29 2010 Tim 'mithro' Ansell <mithro@mithis.com>

* python-gflags: version 1.3
* Fork from the C++ package (google-gflags 1.3)
* Add debian packaging
19 changes: 19 additions & 0 deletions tools/gflags/MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
include AUTHORS
include COPYING
include ChangeLog
include MANIFEST.in
include Makefile
include NEWS
include README
include debian/README
include debian/changelog
include debian/compat
include debian/control
include debian/copyright
include debian/docs
include debian/rules
include gflags.py
include gflags2man.py
include gflags_validators.py
include setup.py
recursive-include tests *.py
69 changes: 69 additions & 0 deletions tools/gflags/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@

prep:
@echo
# Install needed packages
sudo apt-get install subversion fakeroot python-setuptools python-subversion
#
@echo
# Check that the person has .pypirc
@if [ ! -e ~/.pypirc ]; then \
echo "Please create a ~/.pypirc with the following contents:"; \
echo "[server-login]"; \
echo "username:google_opensource"; \
echo "password:<see valentine>"; \
fi
#
@echo
# FIXME(tansell): Check that the person has .dputrc for PPA

clean:
# Clean up any build files.
python setup.py clean --all
#
# Clean up the debian stuff
fakeroot ./debian/rules clean
#
# Clean up everything else
rm MANIFEST || true
rm -rf build-*
#
# Clean up the egg files
rm -rf *egg*
#
# Remove dist
rm -rf dist

dist:
# Generate the tarball based on MANIFEST.in
python setup.py sdist
#
# Build the debian packages
fakeroot ./debian/rules binary
mv ../python-gflags*.deb ./dist/
#
# Build the python Egg
python setup.py bdist_egg
#
@echo
@echo "Files to upload:"
@echo "--------------------------"
@ls -l ./dist/

push:
# Send the updates to svn
# Upload the source package to code.google.com
- /home/build/opensource/tools/googlecode_upload.py \
-p python-gflags ./dist/*
#
# Upload the package to PyPi
- python setup.py sdist upload
- python setup.py bdist_egg upload
#
# Upload the package to the ppa
# FIXME(tansell): dput should run here

check:
# Run all the tests.
for test in tests/*.py; do PYTHONPATH=. python $$test || exit 1; done

.PHONY: prep dist clean push check
77 changes: 77 additions & 0 deletions tools/gflags/NEWS
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
== 18 January 2012 ==

[Prependum:] I just realized I should have named the new version 2.0,
to reflect the new ownership and status as a community run project.
Not too late, I guess. I've just released python-gflags 2.0, which is
identical to python-gflags 1.8 except for the version number.

I've just released python-gflags 1.8. This fixes a bug, allowing
modules defining flags to be re-imported without raising duplicate
flag errors.

Administrative note: In the coming weeks, I'll be stepping down as
maintainer for the python-gflags project, and as part of that Google
is relinquishing ownership of the project; it will now be entirely
community run. The remaining
[http://python-gflags.googlecode.com/svn/tags/python-gflags-1.8/ChangeLog changes]
in this release reflect that shift.


=== 20 December 2011 ===

I've just released python-gflags 1.7. The major change here is
improved unicode support, in both flag default values and
help-strings. We've also made big steps toward making gflags work
with python 3.x (while keeping 2.4 compatibility), and improving
--help output in the common case where output is a tty.

For a full list of changes since last release, see the
[http://python-gflags.googlecode.com/svn/tags/python-gflags-1.7/ChangeLog ChangeLog].

=== 29 July 2011 ===

I've just released python-gflags 1.6. This release has only minor
changes, including support for multi_float flags. The full list of
changes is in the
[http://python-gflags.googlecode.com/svn/tags/python-gflags-1.6/ChangeLog ChangeLog].

The major change with this release is procedural: I've changed the
internal tools used to integrate Google-supplied patches for gflags
into the opensource release. These new tools should result in more
frequent updates with better change descriptions. They will also
result in future `ChangeLog` entries being much more verbose (for
better or for worse).

=== 26 January 2011 ===

I've just released python-gflags 1.5.1. I had improperly packaged
python-gflags 1.5, so it probably doesn't work. All users who have
updated to python-gflags 1.5 are encouraged to update again to 1.5.1.

=== 24 January 2011 ===

I've just released python-gflags 1.5. This release adds support for
flag verifiers: small functions you can associate with flags, that are
called whenever the flag value is set or modified, and can verify that
the new value is legal. It also has other, minor changes, described
in the
[http://python-gflags.googlecode.com/svn/tags/python-gflags-1.5/ChangeLog ChangeLog].

=== 11 October 2010 ===

I've just released python-gflags 1.4. This release has only minor
changes from 1.3, including support for printing flags of a specific
module, allowing key-flags to work with special flags, somewhat better
error messaging, and
[http://python-gflags.googlecode.com/svn/tags/python-gflags-1.4/ChangeLog so forth].
If 1.3 is working well for you, there's no particular reason to upgrade.

=== 4 January 2010 ===

I just released python-gflags 1.3. This is the first python-gflags
release; it is version 1.3 because this code is forked from the 1.3
release of google-gflags.

I don't have a tarball or .deb file up quite yet, so for now you will
have to get the source files by browsing under the 'source'
tag. Downloadable files will be available soon.
10 changes: 10 additions & 0 deletions tools/gflags/PKG-INFO
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Metadata-Version: 1.0
Name: python-gflags
Version: 2.0
Summary: Google Commandline Flags Module
Home-page: http://code.google.com/p/python-gflags
Author: Google Inc. and others
Author-email: google-gflags@googlegroups.com
License: BSD
Description: UNKNOWN
Platform: UNKNOWN
23 changes: 23 additions & 0 deletions tools/gflags/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
This repository contains a python implementation of the Google commandline
flags module.

GFlags defines a *distributed* command line system, replacing systems like
getopt(), optparse and manual argument processing. Rather than an application
having to define all flags in or near main(), each python module defines flags
that are useful to it. When one python module imports another, it gains
access to the other's flags.

It includes the ability to define flag types (boolean, float, interger, list),
autogeneration of help (in both human and machine readable format) and reading
arguments from a file. It also includes the ability to automatically generate
man pages from the help flags.

Documentation for implementation is at the top of gflags.py file.

To install the python module, run
python ./setup.py install

When you install this library, you also get a helper application,
gflags2man.py, installed into /usr/local/bin. You can run gflags2man.py to
create an instant man page, with all the commandline flags and their docs, for
any C++ or python program you've written using the gflags library.
7 changes: 7 additions & 0 deletions tools/gflags/debian/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
The list of files here isn't complete. For a step-by-step guide on
how to set this package up correctly, check out
http://www.debian.org/doc/maint-guide/

Most of the files that are in this directory are boilerplate.
However, you may need to change the list of binary-arch dependencies
in 'rules'.
54 changes: 54 additions & 0 deletions tools/gflags/debian/changelog
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
python-gflags (2.0-1) unstable; urgency=low

* New upstream release.

-- Google Inc. <google-gflags@googlegroups.com> Wed, 18 Jan 2012 13:57:39 -0800

python-gflags (1.8-1) unstable; urgency=low

* New upstream release.

-- Google Inc. <google-gflags@googlegroups.com> Wed, 18 Jan 2012 11:54:03 -0800

python-gflags (1.7-1) unstable; urgency=low

* New upstream release.

-- Google Inc. <opensource@google.com> Tue, 20 Dec 2011 17:10:41 -0800

python-gflags (1.6-1) unstable; urgency=low

* New upstream release.

-- Google Inc. <opensource@google.com> Fri, 29 Jul 2011 12:24:08 -0700

python-gflags (1.5.1-1) unstable; urgency=low

* New upstream release (fixes manifest and setup.py files)

-- Google Inc. <opensource@google.com> Wed, 26 Jan 2011 13:50:46 -0800

python-gflags (1.5-1) unstable; urgency=low

* New upstream release.

-- Google Inc. <opensource@google.com> Mon, 24 Jan 2011 16:58:10 -0800

python-gflags (1.4-1) unstable; urgency=low

* New upstream release.

-- Google Inc. <opensource@google.com> Wed, 13 Oct 2010 17:40:12 -0700

python-gflags (1.3-2) unstable; urgency=low

* Fixed man-page generation.

-- Tim 'mithro' Ansell <mithro@mithis.com> Mon, 07 Jan 2010 13:46:10 +1100

python-gflags (1.3-1) unstable; urgency=low

* Initial release.
* Packaging based on gflags 1.3

-- Tim 'mithro' Ansell <mithro@mithis.com> Mon, 04 Jan 2010 18:46:10 -0800
1 change: 1 addition & 0 deletions tools/gflags/debian/compat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5
25 changes: 25 additions & 0 deletions tools/gflags/debian/control
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
Source: python-gflags
Section: python
XS-Python-Version: all
Priority: optional
Maintainer: Craig Silverstein <google-gflags@googlegroups.com>
Build-Depends-Indep: python-central (>= 0.5.6), python-setuptools (>= 0.6b3-1), python-all
Build-Depends: debhelper (>= 5.0.38)
Standards-Version: 3.7.2

Package: python-gflags
Architecture: all
Depends: ${python:Depends}
XB-Python-Version: ${python:Versions}
Description: A Python implementation of the Google commandline flags module
.
GFlags defines a *distributed* command line system, replacing systems like
getopt(), optparse and manual argument processing. Rather than an application
having to define all flags in or near main(), each Python module defines flags
that are useful to it. When one Python module imports another, it gains
access to the other's flags.
.
It includes the ability to define flag types (boolean, float, interger, list),
autogeneration of help (in both human and machine readable format) and reading
arguments from a file. It also includes the ability to automatically generate
man pages from the help flags.
Loading

0 comments on commit 6242229

Please sign in to comment.