Obsolete. Please migrate to absl-py instead.
Project description
Google Application Utilities for Python
=======================================
This project is a small collection of utilities for building Python
applications. It includes some of the same set of utilities used to build and
run internal Python apps at Google.
Features:
* Simple application startup integrated with python-gflags.
* Subcommands for command-line applications.
* Option to drop into pdb on uncaught exceptions.
* Helper functions for dealing with files.
* High-level profiling tools.
* Timezone-aware wrappers for datetime.datetime classes.
* Improved TestCase with the same methods as unittest2, plus helpful flags for
test startup.
* google_test setuptools command for running tests.
* Helper module for creating application stubs.
Installation
============
To install the package, simply run:
python setup.py install
Google-Style Tests
==================
Google-style tests (those run with basetest.main()) differ from setuptools-style
tests in that test modules are designed to be run as __main__. Setting up your
project to use Google-style tests is easy:
1. Create one or more test modules named '*_test.py' in a directory. Each test
module should have a main block that runs basetest.main():
# In tests/my_test.py
from google.apputils import basetest
class MyTest(basetest.TestCase):
def testSomething(self):
self.assertTrue('my test')
if __name__ == '__main__':
basetest.main()
2. Add a setup requirement on google-apputils and set the test_dir option:
# In setup.py
setup(
...
setup_requires = ['google-apputils>=0.2'],
test_dir = 'tests',
)
3. Run your tests:
python setup.py google_test
Google-Style Stub Scripts
=========================
Google-style binaries (run with app.run()) are intended to be executed directly
at the top level, so you should not use a setuptools console_script entry point
to point at your main(). You can use distutils-style scripts if you want.
Another alternative is to use google.apputils.run_script_module, which is a
handy wrapper to execute a module directly as if it were a script:
1. Create a module like 'stubs.py' in your project:
# In my/stubs.py
from google.apputils import run_script_module
def RunMyScript():
import my.script
run_script_module.RunScriptModule(my.script)
def RunMyOtherScript():
import my.other_script
run_script_module.RunScriptModule(my.other_script)
2. Set up entry points in setup.py that point to the functions in your stubs
module:
# In setup.py
setup(
...
entry_points = {
'console_scripts': [
'my_script = my.stubs:RunMyScript',
'my_other_script = my.stubs.RunMyOtherScript',
],
},
)
There are also useful flags you can pass to your scripts to help you debug your
binaries; run your binary with --helpstub to see the full list.
=======================================
This project is a small collection of utilities for building Python
applications. It includes some of the same set of utilities used to build and
run internal Python apps at Google.
Features:
* Simple application startup integrated with python-gflags.
* Subcommands for command-line applications.
* Option to drop into pdb on uncaught exceptions.
* Helper functions for dealing with files.
* High-level profiling tools.
* Timezone-aware wrappers for datetime.datetime classes.
* Improved TestCase with the same methods as unittest2, plus helpful flags for
test startup.
* google_test setuptools command for running tests.
* Helper module for creating application stubs.
Installation
============
To install the package, simply run:
python setup.py install
Google-Style Tests
==================
Google-style tests (those run with basetest.main()) differ from setuptools-style
tests in that test modules are designed to be run as __main__. Setting up your
project to use Google-style tests is easy:
1. Create one or more test modules named '*_test.py' in a directory. Each test
module should have a main block that runs basetest.main():
# In tests/my_test.py
from google.apputils import basetest
class MyTest(basetest.TestCase):
def testSomething(self):
self.assertTrue('my test')
if __name__ == '__main__':
basetest.main()
2. Add a setup requirement on google-apputils and set the test_dir option:
# In setup.py
setup(
...
setup_requires = ['google-apputils>=0.2'],
test_dir = 'tests',
)
3. Run your tests:
python setup.py google_test
Google-Style Stub Scripts
=========================
Google-style binaries (run with app.run()) are intended to be executed directly
at the top level, so you should not use a setuptools console_script entry point
to point at your main(). You can use distutils-style scripts if you want.
Another alternative is to use google.apputils.run_script_module, which is a
handy wrapper to execute a module directly as if it were a script:
1. Create a module like 'stubs.py' in your project:
# In my/stubs.py
from google.apputils import run_script_module
def RunMyScript():
import my.script
run_script_module.RunScriptModule(my.script)
def RunMyOtherScript():
import my.other_script
run_script_module.RunScriptModule(my.other_script)
2. Set up entry points in setup.py that point to the functions in your stubs
module:
# In setup.py
setup(
...
entry_points = {
'console_scripts': [
'my_script = my.stubs:RunMyScript',
'my_other_script = my.stubs.RunMyOtherScript',
],
},
)
There are also useful flags you can pass to your scripts to help you debug your
binaries; run your binary with --helpstub to see the full list.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
google-apputils-0.4.2.zip
(101.5 kB
view details)
google-apputils-0.4.2.tar.gz
(81.1 kB
view details)
Built Distribution
google_apputils-0.4.2-py2.7.egg
(118.3 kB
view details)
File details
Details for the file google-apputils-0.4.2.zip
.
File metadata
- Download URL: google-apputils-0.4.2.zip
- Upload date:
- Size: 101.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f518d9c3ccf433352a79ad221dc7b80239dc53d030d132ada70fa51eadf7e33b |
|
MD5 | 587c66c37f7f79f63b0b454628c4f660 |
|
BLAKE2b-256 | 099c4b038fbc54ef7ee3640c0f75f87c89f4bb4c7f20b31b8bfc1093e15ead9d |
File details
Details for the file google-apputils-0.4.2.tar.gz
.
File metadata
- Download URL: google-apputils-0.4.2.tar.gz
- Upload date:
- Size: 81.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47959d0651c32102c10ad919b8a0ffe0ae85f44b8457ddcf2bdc0358fb03dc29 |
|
MD5 | fb9fadf621dbecf28c8dabb5fe37ddb3 |
|
BLAKE2b-256 | 6966a511c428fef8591c5adfa432a257a333e0d14184b6c5d03f1450827f7fe7 |
File details
Details for the file google_apputils-0.4.2-py2.7.egg
.
File metadata
- Download URL: google_apputils-0.4.2-py2.7.egg
- Upload date:
- Size: 118.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c01f1f743f451134fcb823eb095d689b8471581e401bb3d3e0d13741ee68ca2a |
|
MD5 | 38b003cf8b73264340ffa8beeafaaf84 |
|
BLAKE2b-256 | e4a905540567740506890677937aff845bc02e17c3d4cf9bf59eb92ea3dc054b |