Appends a data function to the data_files list that will generate __hg_version__.py file to the current package directory. Generate package __hg_version__.py file from Mercurial revision, it will be removed after python exits but will be available when sdist, etc com
(self, delete=True)
| 2066 | self.add_data_files(('', generate_svn_version_py())) |
| 2067 | |
| 2068 | def make_hg_version_py(self, delete=True): |
| 2069 | """Appends a data function to the data_files list that will generate |
| 2070 | __hg_version__.py file to the current package directory. |
| 2071 | |
| 2072 | Generate package __hg_version__.py file from Mercurial revision, |
| 2073 | it will be removed after python exits but will be available |
| 2074 | when sdist, etc commands are executed. |
| 2075 | |
| 2076 | Notes |
| 2077 | ----- |
| 2078 | If __hg_version__.py existed before, nothing is done. |
| 2079 | |
| 2080 | This is intended for working with source directories that are |
| 2081 | in an Mercurial repository. |
| 2082 | """ |
| 2083 | target = njoin(self.local_path, '__hg_version__.py') |
| 2084 | revision = self._get_hg_revision(self.local_path) |
| 2085 | if os.path.isfile(target) or revision is None: |
| 2086 | return |
| 2087 | else: |
| 2088 | def generate_hg_version_py(): |
| 2089 | if not os.path.isfile(target): |
| 2090 | version = str(revision) |
| 2091 | self.info('Creating %s (version=%r)' % (target, version)) |
| 2092 | with open(target, 'w') as f: |
| 2093 | f.write('version = %r\n' % (version)) |
| 2094 | |
| 2095 | def rm_file(f=target,p=self.info): |
| 2096 | if delete: |
| 2097 | try: os.remove(f); p('removed '+f) |
| 2098 | except OSError: pass |
| 2099 | try: os.remove(f+'c'); p('removed '+f+'c') |
| 2100 | except OSError: pass |
| 2101 | |
| 2102 | atexit.register(rm_file) |
| 2103 | |
| 2104 | return target |
| 2105 | |
| 2106 | self.add_data_files(('', generate_hg_version_py())) |
| 2107 | |
| 2108 | def make_config_py(self,name='__config__'): |
| 2109 | """Generate package __config__.py file containing system_info |
nothing calls this directly
no test coverage detected