Commit Graph

206 Commits

Author SHA1 Message Date
Guy Taylor
9867b260e1 Improve Python testing
Introduce pytest, wire it into Make and convert previous tests.

Note this is not wired into Travis
2018-10-21 22:37:39 +01:00
Faddi
d042fcf1a7 fix(util.py): iteration over dicts with 'values' key
Sheets api has a 'values' key in resources.spreadsheets.resources which
collides with values().
2018-01-28 16:54:05 +01:00
Sebastian Thiel
4660d23676 fix(docs): Example now uses hyper_rustls
It's already done by the CLI, but the docs still showed
code that would only work in older hyper versions that still
shipped with HTTPS.

Fixes #169
2017-05-26 10:14:39 +02:00
Sebastian Thiel
fad9d3b0ca doc(index): link to doc.rs for APIs
We also link more specifically to crates.io.

Some debt was taken on as the build_version is special and
duplicated right now.
2016-12-24 13:44:06 +01:00
Sebastian Thiel
d6accb8f61 doc(index): remove all download links
Instead refer to cargo install for installation.

[skip ci]
2016-12-24 10:49:37 +01:00
Sebastian Thiel
fc34337ee4 doc(lib): use docs.rs for library documentation
We will still need to host the CLI docs though.
2016-12-24 10:35:48 +01:00
Sebastian Thiel
53c27da2e7 fix(util.py): improve version and library name handling
We can now deal with versions having the 'alpha' or 'beta' suffix.
It's rather hard-coded, but solves the problem for now.

Related to #126
2015-10-16 15:45:12 +02:00
Sebastian Thiel
1180314275 chore(make-docs): adjust to build.target-dir
Thanks to the latest cargo 0.3.0, it's possible to keep everything
in the stanard doc output directory, which essentially collects
everything for us.

This creatly reduces the space required to hold all documentation, and
is in fact quite beatiful.
2015-06-21 14:52:34 +02:00
Sebastian Thiel
e92f440d9b imp(index.html): download links to tar.gz files
That way, we save bandwidth and preserve the executable bit of the
respective program.

Closes #107
[skip ci]
2015-05-10 18:51:08 +02:00
Sebastian Thiel
52027c6db5 feat(index.html):added download links (osx,ubuntu)
All assets are configured via shared.yaml and are located elsewhere in
the web. This could lead to broken assets at some point, but I am just
risking it for know, knowing that it's easily done to have local
resources.

Closes #106
[skip ci]
2015-05-10 11:03:36 +02:00
Sebastian Thiel
0e6605d7a4 feat(index.html): added back-link to crates.io
* url is created per-API and features a nice crates image coming
  from githubusercontent.

Closes #105
[skip ci]
2015-05-10 09:10:25 +02:00
Sebastian Thiel
944e04bd12 docs(CLI): filled README.md
All possible documentation was added in a quality sufficient for
a first release. After all, everything there is is documented.

Fixes #50
2015-04-26 11:22:28 +02:00
Sebastian Thiel
fbec9bdbba docs(index): integrate different program types
* put program type inforamtion into shared.yaml to allow accessing it
  from the index.html.mako template.

Fixes #51
2015-04-26 09:42:01 +02:00
Sebastian Thiel
be7ccb085c fix(CLI): set request value to call
Previously, even though the request was passed by reference, it was
copied and thus our changes never arrived in the call.

Now the API makes this clear by taking ownership, and the CLI code
sets the Request value lateron, explicitly.

Related to #76
2015-04-25 13:25:00 +02:00
Sebastian Thiel
6befdbc6fa fix(CLI): verified download works
* implement custom scopes - previously they could be set, but were
  ignored during the API call
* api-overrides are not yaml files for convenience. Existing ones were
  updated as needed.

Fixes #75
2015-04-25 11:35:39 +02:00
Sebastian Thiel
845a568b25 fix(CLI): response value json decoding
* updated all json API descriptions
* enabled 'pretty' printing of response structures. However, currently
  there is no way to get rid of all the NULL fields without external
  filtering
* all structure fields are now optional - there seems to be no way
  around it.

Fixes #73
2015-04-24 16:00:27 +02:00
Sebastian Thiel
bf22bef77a fix(CLI): struct access compiles ...
... but currently wouldn't run as we don't initialize the optional sub-
structures at all.
2015-04-16 19:53:15 +02:00
Sebastian Thiel
6ae6ee88a0 feat(CLI): parse method parameters and set them
It's implemented in a working fashion, except that the default value
is not currently set to something sensible, causing duplicate errors in
case the key-value syntax is wrong.

Related to #61
2015-04-15 11:02:23 +02:00
Sebastian Thiel
b64722cca8 docs(CLI): random values + cursor information
* Instead of writing pod-types, we generate a random value of the
  required type.
* Fully document how cursors can be set, which is all that's usually
  demonstrated in more complex dynamic structure documentation

Fixes #49
2015-04-13 14:18:32 +02:00
Sebastian Thiel
5b4f18d341 fix(api+cli): improved scope handling; fix CLI
* in APIs, scopes will now be per-method, and if no scope is given,
  we will assume only the API key has to be set. Previously there was
  a wild mix between globally mentioned scopes and method scopes.
* assure CLI generation works so far, for all avaialable APIs

Related to #48
2015-04-13 10:50:19 +02:00
Sebastian Thiel
24e053718a docs(CLI): optional paramters
Added documentation for flags setting all kinds of optional parameters.
2015-04-12 19:33:11 +02:00
Sebastian Thiel
49c4a4101e docs(scopes): added CLI scope documentation
In addition to that, they can now be set as well.
Unified generation of the 'default' scope.
2015-04-12 17:15:55 +02:00
Sebastian Thiel
acd42dfccc fix(make): dependencies are now per-program-type
Previously we put cli.py into the common lib folder, which caused the
API to be regenerated and rebuilt whenever we changed code that will
only affect the CLI, causing terrible turnaround times.

Now the dependency is fixed.
2015-04-12 09:55:17 +02:00
Sebastian Thiel
3cef120c58 feat(mkdocs): per-method-markdown-files
That way, all information can be placed within a single markdown file
per method call. This will keep loading times low while maximizing
usability.

That way, it's comparable to the API documentation, which is most
detailed on a per-method basis as well.
2015-04-10 16:52:42 +02:00
Sebastian Thiel
c78ea5381a feat(mkdocs): cli postprocessing support
That way, a single huge markdown file containing documentation for
commands and methods can be split up into multiple files for
individual inclusion in mkdocs.

It's done by a post-processor which is loaded by mako-render, providing
access to the entire context. Said processor may also drop results
altogether and thus prevent files to be written that have been split up
by it.
2015-04-10 13:02:36 +02:00
Sebastian Thiel
39253d988a feat(cli): docopt subcommands
Setup command/subcommand pattern.
Next will be the infrastucture for documenting these, using mkdocs
and markdown.
2015-04-09 18:01:58 +02:00
Sebastian Thiel
f527c8202b feat(cli): bin renaming + docopt infrastructure
* allow to rename executables, for now just brute-force using a boolean
  flag. If we have more binaries at some point, we might want to be more
  elaborate.
* everything related to docopts functionality is now in the docopts
  module.

  Related to #45
2015-04-09 17:05:55 +02:00
Sebastian Thiel
191e822c5a fix(hyper-client): adjust to hyper client
* deal with hyper client not using a type-parameter anymore
* fix incorrect documentation link (use '_' instead of '-')

Fixes #47
2015-04-08 16:51:46 +02:00
Sebastian Thiel
91861dcb71 fix(rustup): rustc (be9bd7c93 2015-04-05)
* using std::convert
* update to latest hyper (and other dependencies)

Related to #46
2015-04-07 11:59:10 +02:00
Sebastian Thiel
d1c97912cb feat(mkdocs): mkdocs generator works now
It can be selected for each type of program we want to build, and makes
sense for everything that is not a library.

We also tried to unify names and folders a bit more, even though there
certainly is more work to be done to be fully non-redundant.

Fixes #43
2015-03-24 18:11:12 +01:00
Sebastian Thiel
caaf62e51d chore(suffix):prepare dep generation to use suffix
That way, we can have multiple deps files, one per program 'type'
2015-03-24 11:57:12 +01:00
Sebastian Thiel
137ba8caf3 refactor(mako): put API relevant stuff into subdir
This is the first of many changes to come.
We try to leverage our ability to merge multiple data source into one
to abstract away what we are actually doing, and of course, to allow
sharing the majority of the code, were applicable.
2015-03-23 16:13:02 +01:00
Sebastian Thiel
d1c5bf1e4a fix(docs): remove newlines interpreted as test
When documenting mandatory arguments of a methods builder, it was
possible to document 'parts', which have a long multi-line description
with empty lines inbetween. This caused the indentation to be funny
and tricked rustdoc into thinking these are indented doc-tests.

Now we remove these empty lines, also hoping we dont encounter lines
with just whitespace in them. The latter would require a tiny update
of our regex.
2015-03-23 15:14:07 +01:00
Sebastian Thiel
e5b013e97c fix(result): remove custom Result Enum
Instead, we just use a customized `Result` tyoe and thus stick to
common Rust conventions.

Fixes #39
2015-03-23 14:57:31 +01:00
Sebastian Thiel
4bfdc9fd01 chore(publish): make publish
We will now keep marker files to remember which crates we have published
successfully. These files are checked in to make this information
persist.

NOTE: We still don't explicitly exclude pseudo-changes in json files,
which are no real change except for a changed revision number.

Fixes #41
2015-03-23 12:11:18 +01:00
Sebastian Thiel
ea161897f5 fix(docs): typo fixes and misc. improvements
Fixes #42
2015-03-23 11:19:57 +01:00
Sebastian Thiel
6ad0c2ef79 fix(misc): whitespace and trait rename
* `ResourceMethodsBuilder` -> `MethodsBuilder`. This is now precise
   enough. Previously it was just to similar to what's now a
   `CallBuilder`
* Fixed whitespace issue in `doit()`
2015-03-23 08:49:27 +01:00
Sebastian Thiel
04f4c95688 fix(mbuild): upload size now taken properly
Previously, it would query the size from the wrong dict and obtain
the value 0 all the time. This would have made every upload fail with
`UploadSizeLimitExeeded`.
Now we obtain the actual size limit, and will ignore it if unset/0
for some reason.

Patch += 1
2015-03-22 22:39:36 +01:00
Sebastian Thiel
cd1ff18ba9 fix(cmn): upload() return value handling
Now deals with Cancellation and non-OK status codes correctly.

Fixes #18
2015-03-22 20:21:21 +01:00
Sebastian Thiel
29ee94b4c0 feat(cmn): Resumable upload implemented
With all bells and whisles. For now, we don't have a good return value
to indicate that the operation was cancelled, which needs fixing.
2015-03-22 19:56:35 +01:00
Sebastian Thiel
065753cc3a feat(cmn): implement query_transfer_status()
The delegate logic is implemented and seems sound.
It's somewhat funny that after all this back and forth, all we get
is a valid start position for the upload.
2015-03-22 17:58:34 +01:00
Sebastian Thiel
42a76e4655 feat(cmn): ContentRange header (parse and format)
Now we are able to send the transfer-update requests and implement the
actual chunk logic.
2015-03-22 16:24:39 +01:00
Sebastian Thiel
3a9aa51949 fix(docs):better introduction and version handling
Make it cristal clear what the crate version means, and what version of
the documentation you are looking at. Also do this in the README file.

Assure that 'Google' is capitalized.
2015-03-22 12:33:43 +01:00
Sebastian Thiel
d26cf77406 feat(mbuild): use of oauth2::Scheme
That way, we improved our API, reduced code bloat, and are very clear
about the what we do for Authorization.
2015-03-22 12:07:40 +01:00
Sebastian Thiel
030c40d269 fix(cargo): repository/source-code link
Previously it pointed to a timestamp file. Unified repository
source code link generation, and simplified 'deps.mako'.

Related to #38
2015-03-22 10:51:06 +01:00
Sebastian Thiel
8ad316bda3 feat(cargo): crate version +<revision>
That way, crate names reveal exact inforamtion about the contained
API revision.

* crate version: code gen version
* +<revision> (build-metadata): exact version of API schema

Fixes #38
2015-03-22 10:40:59 +01:00
Sebastian Thiel
57e0f06583 feat(mbuild): check upload size against max-size
Fixes #37
2015-03-22 10:12:04 +01:00
Sebastian Thiel
c1d09e6d57 docs(lib): minor phrasing changes
Also removed superfluous 'extern' for tests
2015-03-22 09:32:08 +01:00
Sebastian Thiel
f73204c6b9 fix(cmn) re-export important types from cmn
That way, 'cmn' becomes our private module. All URLs were updated
to reflect that.

This commit also contains an early implementation of the
'transfer_status' method, which will require plenty of work.
2015-03-22 09:26:49 +01:00
Sebastian Thiel
ffef7dda57 feat(dlg): make actual store_upload_url() call
We also assure to call only as often as we have to, keeping some state
between the loops accordingly.
2015-03-21 18:44:08 +01:00