| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| pkg_resources.declare_namespace(__name__) | ||
| except ImportError: | ||
| import pkgutil | ||
| __path___ = pkgutil.extend_path(__path__, __name__) |
|
@dhermes, I'm sure this will break json-docs as well. |
Sorry, something went wrong.
|
@daspecster Definitely. I was planning on asking for your help at some point. Trying to get the basic tox envs working first. |
Sorry, something went wrong.
Done via: $ mkdir google $ git mv gcloud google/cloud
Done via: $ git grep -l 'import gcloud' | \ > xargs sed -i s/'import gcloud'/'import google.cloud'/g
Done via: $ git grep -l 'from gcloud import' | \ > xargs sed -i s/'from gcloud import'/'from google.cloud import'/g
Done via: $ git grep -l '>>> from gcloud.' | \ > xargs sed -i s/'>>> from gcloud.'/'>>> from google.cloud.'/g
This was done entirely via sed. First checked that
the remaining imports were at the start of their
respective lines:
$ git grep 'from gcloud.*import' > anywhere.txt
$ git grep '^[[:space:]]*from gcloud.*import' > line_start.txt
$ diff -s anywhere.txt line_start.txt
Files anywhere.txt and line_start.txt are identical
$ rm -f anywhere.txt line_start.txt
Then put all the imports in a text file
$ git grep -h '^[[:space:]]*from gcloud.*import' > imports.txt
Then parsed that file to get a list of the modules:
$ cat << EOF > get_mods.py
> def get_import(line):
> a, b, c, d = line.strip().split(None, 3)
> assert a == 'from'
> assert c == 'import'
> try:
> e, f, g = b.split('.', 2)
> except ValueError:
> e, f = b.split('.')
> assert e == 'gcloud'
> return f
>
> with open('imports.txt', 'rb') as file_obj:
> imported = sorted(set(map(get_import, file_obj.readlines())))
>
> for mod in imported:
> print(mod)
>
> EOF
$ python get_mods.py > mods.txt
$ rm -f imports.txt get_mods.py
Then using the list of modules to rewrite the imports
$ cat << 'EOF' > all-sed.sh
> for mod in $(cat mods.txt); do
> git grep -l "from gcloud.${mod}" | \
> xargs sed -i s/"from gcloud.${mod}"/"from google.cloud.${mod}"/g
> done
>
> EOF
$ /bin/bash all-sed.sh
$ rm -f all-sed.sh mods.txt
Done via: $ git grep -l 'gcloud-python' | \ > xargs sed -i s/gcloud-python/google-cloud-python/g
Done via: $ git grep -l 'hack-on-gcloud' | \ > xargs sed -i s/hack-on-gcloud/hack-on-google-cloud-python/g
Done via: $ git grep -l 'automodule:: gcloud' | \ > xargs sed -i s/'automodule:: gcloud'/'automodule:: google.cloud'/g
Done via: $ git grep -l '<gcloud.' | \ > xargs sed -i s/'<gcloud.'/'<google.cloud.'/g $ git grep -l '`gcloud\.' | \ > xargs sed -i s/'`gcloud\.'/'`google.cloud.'/g
Done via: $ git grep -l '"gcloud/' | \ > xargs sed -i s/'"gcloud\/'/'"google\/cloud\/'/g
Many usages were ad-hoc so this was done by hand rather than via a sed script.
Done via: $ git grep -l 'GCLOUD_' | \ > xargs sed -i s/'GCLOUD_'/'GOOGLE_CLOUD_'/g
Done via: $ git grep -l GCloudError | \ > xargs sed -i s/GCloudError/GoogleCloudError/g
Done via: $ git grep -l '~gcloud' | \ > xargs sed -i s/'~gcloud'/'~google.cloud'/g
commit 6faf161 Author: Danny Hermes <daniel.j.hermes@gmail.com> Date: Tue Aug 30 12:39:46 2016 -0700 Converting almost all packages to namespace packages. As a result, the module objects for those packages can no longer contain members. Hence the following is no longer possible: >>> from google.cloud import storage >>> client = storage.Client() The "_generated" packages have not been converted to namespace packages and neither have "google.cloud.logging.handlers" nor "google.cloud.logging.handlers.transports". In addition, some members of "google.cloud.logging" have been moved into "google.cloud.logging.client" in order to be importable. Finally, the unit tests all pass at this commit, but `tox` fails to run them: the namespace imports appear broken to `tox` even though they aren't broken to the `virtualenv` for the given `tox` environment.
| # pylint: disable=ungrouped-imports | ||
| from google.cloud.environment_vars import PROJECT | ||
| from google.cloud.environment_vars import CREDENTIALS | ||
| # pylint: enable=ungrouped-imports |
|
@tseaver Renames that are also a concern: gcloud-python-expenses-demo google-cloud-python.readthedocs.org |
Sorry, something went wrong.
| Helper method for ``Batch.put``. | ||
|
|
||
| :type entity_pb: :class:`google.cloud.datastore._generated.entity_pb2.Entity` | ||
| :type entity_pb: :class:`.datastore._generated.entity_pb2.Entity` |
|
@tseaver Other than the path changes on docstrings, anything else for me to do? |
Sorry, something went wrong.
|
@dhermes Nope, I think we have to trust our tests here. |
Sorry, something went wrong.
|
@tseaver merging now to stop blocking other PRs and to avoid having a long Travis wait time. Will send the docstring fixes in a new PR ASAP. Also going to rename the repo immediately after merging |
Sorry, something went wrong.
|
FYI AppVeyor seems happy: https://ci.appveyor.com/project/dhermes/gcloud-python/build/1.0.631.master |
Sorry, something went wrong.
Follow-up to PR googleapis#2223. The Sphinx mechanism of using a `.` to mean "go find this class" can be confusing, so we make sure the `.` also is a relative path.
|
@dhermes System tests for pubsub and logging are failing, due to the namespace packages. |
Sorry, something went wrong.
|
I'm working on a fix for them. |
Sorry, something went wrong.
|
Just filed #2259 for the overall fix. Something more specific busted for logging and pubsub? |
Sorry, something went wrong.
|
Namespace packages break the client construction for pubsub and logging. |
Sorry, something went wrong.
Follow-up to PR googleapis#2223. The Sphinx mechanism of using a `.` to mean "go find this class" can be confusing, so we make sure the `.` also is a relative path.
Co-authored-by: Lingqing Gan <lingqing.gan@gmail.com>
Migrated the maximum_op and minimum_op operators to SQLGlot.
| Back | FazBrowse Home | New Git URL |
Also use namespace packages throughout.
The commit messages will be quite useful, as almost all of them contain bash scripts used to generated the commit.
Fixes #1978
/cc @jonparrott
Currently the PR has problems (e.g. imports don't work for tox), but I wanted to get it out there as a start since it is such a monster.