menegazzo / travispy Goto Github PK
View Code? Open in Web Editor NEWLOOKING FOR SOMEONE TO TRANSFER OWNERSHIP - Travis CI API for Python
Home Page: https://pypi.python.org/pypi/TravisPy
License: Other
LOOKING FOR SOMEONE TO TRANSFER OWNERSHIP - Travis CI API for Python
Home Page: https://pypi.python.org/pypi/TravisPy
License: Other
Since you are releasing to PyPI periodically, I would suggest keeping a change log so users can see what has changed between releases.
I particularly use GItHub's Releases because you can easily integrate it with your tags, but keeping a CHANGELOG
file is also an option. ๐
Two unit tests (test_builds and test_branches) across the build matrix, as they are expecting 'os: linux' in the build.config
https://travis-ci.org/menegazzo/travispy/builds/81966563
> assert build.config == {
'sudo': False,
'.result': 'configured',
'os': 'linux',
'language': 'python',
'python': [python_version],
'script': ['py.test'],
}
E assert {'.result': '...y.test'], ...} == {'.result': 'c... ['2.6'], ...}
E Omitting 5 identical items, use -v to show
E Right contains more items:
E {'os': 'linux'}
E Use -v to get the full diff
Two months ago the same tests passed using the same codebase, so this must be an API change by Travis-CI.
Do you want to raise this as a regression upstream, or auto-guess the os
value to maintain the travispy external API?
Help Wanted -
I'm using the following code:
import travispy
travis = travispy.travispy.TravisPy()
# https://travis-ci.org/servo/servo/builds/74856035
build_id = 74856035
log = travis.build(build_id).jobs[0].log.body
if log == "":
print "Empty log"
This code prints "Empty log" but if you follow the url in the comment, there is a log there. Is this expected?
Thank you.
Travis-CI API now has this functionality documented here. Is this functionality wrapped by travispy? I would prefer not to interact with the restful api so I currently hack it by making a change then pushing, but I would rather not.
Some information are returned "lazy".
Example:
When requesting to a Repo
the information about last Build
just a reference to it will be returned (the build ID). In this case Repo
should have property last_build
which will look at last_build_id
and then Build
object will be returned.
The api documentation mentions that offset
should be used for pagination of the results.
See https://developer.travis-ci.com/resource/builds
However, when passing a keyword argument offset
to builds
, it is silently ignored. To reproduce:
>>> from travispy import TravisPy
>>> print([p.pull_request_number for p in TravisPy().builds(slug='menegazzo/travispy', event_type='pull_request')])
[56, 55, 55, 49, 50, 50, 50, 50, 50, 50, 50, 49, 47, 45, 39, 39, 38, 36, 35, 33, 33, 33, 33, 32, 31]
>>> print([p.pull_request_number for p in TravisPy().builds(slug='menegazzo/travispy', event_type='pull_request', offset=25)])
[56, 55, 55, 49, 50, 50, 50, 50, 50, 50, 50, 49, 47, 45, 39, 39, 38, 36, 35, 33, 33, 33, 33, 32, 31]
>>>
Creating Build
objects using t.builds(..)
means they do not have a jobs
attribute
t = travispy.TravisPy()
builds = t.builds(slug='menegazzo/travispy')
assert len(builds) > 1
assert all(isinstance(build, travispy.entities.build.Build)
for build in builds)
build = builds[0]
assert hasattr(build, 'jobs')
It would be spectacular if there were a Branch entity that makes use of Travis's branches API.
Reflect the same behavior implemented at Ruby.
Hi,
I tried extracting all the builds specific to a repository using user.builds(slug=repo.slug), but it's returning only last 25 builds. Is there any way to extract all builds/build ids specific to a project?
Thanks
Using below code I could able to sync and enable the repos on https://travis-ci.org :
from travispy import TravisPy
travis = TravisPy.github_auth(token=<github-token>, uri="https://api.travis-ci.org")
user = travis.user()
user.sync()
repo = travis.repo('user/repo_name')
repo.enable()
Now I want to enable the repos on https://staging.travis-ci.org. Is there any way?
I just tried to see if I can skip the write:repo_hook
permission on the access token but then I got this error:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/travis/virtualenv/python2.7_with_system_site_packages/local/lib/python2.7/site-packages/travispy/travispy.py", line 78, in github_auth
contents = get_response_contents(response, AuthenticationError)
File "/home/travis/virtualenv/python2.7_with_system_site_packages/local/lib/python2.7/site-packages/travispy/_helpers.py", line 20, in get_response_contents
contents = response.json()
File "/home/travis/virtualenv/python2.7_with_system_site_packages/local/lib/python2.7/site-packages/requests/models.py", line 793, in json
return json.loads(self.text, **kwargs)
File "/usr/lib/python2.7/dist-packages/simplejson/__init__.py", line 413, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/dist-packages/simplejson/decoder.py", line 402, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/dist-packages/simplejson/decoder.py", line 420, in raw_decode
raise JSONDecodeError("No JSON object could be decoded", s, idx)
simplejson.decoder.JSONDecodeError: No JSON object could be decoded: line 1 column 0 (char 0)
So I guess it doesn't work without write:repo_hook
, but the error is really a bit confusing. Or not?
I used travispy in the past where it worked without problems, but now it doesn't anymore:
https://travis-ci.org/letmaik/rawpy/jobs/198313911#L739
Looks like it's not calling the API correctly.
I'm having trouble trying to enable private repos that belong to an organization, due to the fact that TravisPy can't see them.
My organization has two repos: Travis-Test and Test-Assignment. The former has not been manually enabled through travis-ci.com while the latter has. When I run the following code
>>> travis = TravisPy(semesterConfig.travis_token, travispy.PRIVATE)
>>> travis.repos()
>>> [<travispy.entities.repo.Repo object at 0x1086c6cc8>]
One can see that only one repo is returned in spite of the fact that there are two.
Keep only the "official" versions: 2.7, 3.4 and pypy
I'm using travispy to create a discord bot that my dev team can interact with to manage their builds,
for this I need to access two github repositories that are private, but upon calling github_auth with a token that I tested on my public repositories and the PRIVATE url, I get this error:
Ignoring exception in on_message
Traceback (most recent call last):
File "C:\Users\Antoine\PycharmProjects\Travis-Build-Logger\venv\lib\site-packages\travispy\_helpers.py", line 19, in get_response_contents
contents = response.json()
File "C:\Users\Antoine\PycharmProjects\Travis-Build-Logger\venv\lib\site-packages\requests\models.py", line 892, in json
return complexjson.loads(self.text, **kwargs)
File "C:\Users\Antoine\AppData\Local\Programs\Python\Python36-32\lib\json\__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "C:\Users\Antoine\AppData\Local\Programs\Python\Python36-32\lib\json\decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\Antoine\AppData\Local\Programs\Python\Python36-32\lib\json\decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Antoine\PycharmProjects\Travis-Build-Logger\venv\lib\site-packages\discord\client.py", line 307, in _run_event
yield from getattr(self, event)(*args, **kwargs)
File "C:/Users/Antoine/PycharmProjects/Travis-Build-Logger/TBL.py", line 29, in on_message
t = TravisPy.github_auth(TRAVIS_TOKEN, travispy.travispy.PRIVATE)
File "C:\Users\Antoine\PycharmProjects\Travis-Build-Logger\venv\lib\site-packages\travispy\travispy.py", line 77, in github_auth
contents = get_response_contents(response)
File "C:\Users\Antoine\PycharmProjects\Travis-Build-Logger\venv\lib\site-packages\travispy\_helpers.py", line 34, in get_response_contents
raise TravisError(contents)
travispy.errors.TravisError: [200] <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Travis CI - Test and Deploy with Confidence</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/png" href="https://cdn.travis-ci.com/images/favicon-076a22660830dc325cc8ed70e7146a59.png" />
<meta name="travis/config/environment" content="%7B%22modulePrefix%22:%22travis%22,%22environment%22:%22production%22,%22rootURL%22:%22/%22,%22locationType%22:%22auto%22,%22defaultTitle%22:%22Travis%20CI%20-%20Test%20and%20Deploy%20with%20Confidence%22,%22EmberENV%22:%7B%22FEATURES%22:%7B%7D,%22EXTEND_PROTOTYPES%22:%7B%22Date%22:false%7D,%22ENABLE_DS_FILTER%22:true%7D,%22APP%22:%7B%22name%22:%22travis%22,%22version%22:%220.0.0%22%7D,%22apiEndpoint%22:%22https://api.travis-ci.com%22,%22sourceEndpoint%22:%22https://github.com%22,%22pusher%22:%7B%22key%22:%2259236bc0716a551eab40%22,%22host%22:%22ws.pusherapp.com%22,%22debug%22:false,%22channelPrefix%22:%22private-%22,%22encrypted%22:true%7D,%22urls%22:%7B%22about%22:%22https://about.travis-ci.com%22,%22blog%22:%22https://blog.travis-ci.com%22,%22docs%22:%22https://docs.travis-ci.com%22,%22status%22:%22https://www.traviscistatus.com/%22,%22imprint%22:%22https://billing.travis-ci.com/pages/imprint%22,%22enterprise%22:%22https://enterprise.travis-ci.com%22,%22twitter%22:%22https://twitter.com/travisci%22,%22jobs%22:%22https://travisci.workable.com/%22,%22support%22:%22mailto:[email protected]%22,%22legal%22:%22https://billing.travis-ci.com/pages/legal%22,%22security%22:%22https://billing.travis-ci.com/pages/security%22,%22terms%22:%22https://billing.travis-ci.com/pages/terms%22%7D,%22endpoints%22:%7B%22sshKey%22:%22true%22,%22caches%22:%22true%22%7D,%22timing%22:%7B%22syncingPageRedirectionTime%22:5000%7D,%22intervals%22:%7B%22updateTimes%22:1000,%22branchCreatedSyncDelay%22:2000,%22repositorySearchDebounceRate%22:500,%22triggerBuildRequestDelay%22:3000,%22fetchRecordsForPusherUpdatesThrottle%22:1000,%22repositoryFilteringDebounceRate%22:200,%22syncingPolling%22:3000%7D,%22githubOrgsOauthAccessSettingsUrl%22:%22https://github.com/settings/connections/applications/88c5b97de2dbfc50f3ac%22,%22apiTraceEndpoint%22:%22https://papertrailapp.com/systems/travis-com-api-production/events?q=program%253Aapp%252Fweb%2520log-tracing%2520%22,%22ajaxPolling%22:false,%22logLimit%22:10000,%22emojiPrepend%22:%22%22,%22statusPageStatusUrl%22:%22https://pnpcptp8xh9k.statuspage.io/api/v2/status.json%22,%22randomiseTeam%22:true,%22featureFlags%22:%7B%22repository-filtering%22:true,%22debug-logging%22:false,%22landing-page-cta%22:true,%22show-running-jobs-in-sidebar%22:false,%22debug-builds%22:false,%22broadcasts%22:true,%22pro-version%22:true%7D,%22pro%22:true,%22pagination%22:%7B%22dashboardReposPerPage%22:25,%22profileReposPerPage%22:25%7D,%22sentry%22:%7B%22development%22:true%7D,%22pagesEndpoint%22:%22https://billing.travis-ci.com%22,%22billingEndpoint%22:%22https://billing.travis-ci.com%22,%22userlike%22:true,%22beacon%22:true,%22release%22:%22a7a0c74cc%22,%22contentSecurityPolicyRaw%22:%7B%22default-src%22:%22'none'%22,%22script-src%22:%22'self'%20https://ssl.google-analytics.com%20https://djtflbt20bdde.cloudfront.net/%20https://js.pusher.com%22,%22font-src%22:%22'self'%20https://fonts.googleapis.com/css%20https://fonts.gstatic.com%22,%22connect-src%22:%22'self'%20ws://ws.pusherapp.com%20wss://ws.pusherapp.com%20https://*.pusher.com%20https://s3.amazonaws.com/archive.travis-ci.com/%20https://s3.amazonaws.com/archive.travis-ci.org/%20app.getsentry.com%20https://pnpcptp8xh9k.statuspage.io/%20https://ssl.google-analytics.com%22,%22img-src%22:%22'self'%20data:%20https://www.gravatar.com%20http://www.gravatar.com%20app.getsentry.com%20https://*.githubusercontent.com%20https://0.gravatar.com%20https://ssl.google-analytics.com%22,%22style-src%22:%22'self'%20https://fonts.googleapis.com%20'unsafe-inline'%20https://djtflbt20bdde.cloudfront.net%22,%22media-src%22:%22'self'%22,%22frame-src%22:%22'self'%20https://djtflbt20bdde.cloudfront.net%22,%22report-uri%22:%22https://65f53bfdfd3d7855b8bb3bf31c0d1b7c.report-uri.io/r/default/csp/reportOnly%22,%22block-all-mixed-content%22:%22%22,%22form-action%22:%22'self'%22,%22frame-ancestors%22:%22'none'%22,%22object-src%22:%22https://djtflbt20bdde.cloudfront.net%22%7D,%22cspSectionsWithApiHost%22:[%22connect-src%22,%22img-src%22],%22contentSecurityPolicy%22:%7B%22default-src%22:%22'none'%22,%22script-src%22:%22'self'%20https://ssl.google-analytics.com%20https://djtflbt20bdde.cloudfront.net/%20https://js.pusher.com%22,%22font-src%22:%22'self'%20https://fonts.googleapis.com/css%20https://fonts.gstatic.com%22,%22connect-src%22:%22'self'%20ws://ws.pusherapp.com%20wss://ws.pusherapp.com%20https://*.pusher.com%20https://s3.amazonaws.com/archive.travis-ci.com/%20https://s3.amazonaws.com/archive.travis-ci.org/%20app.getsentry.com%20https://pnpcptp8xh9k.statuspage.io/%20https://ssl.google-analytics.com%20https://api.travis-ci.com%22,%22img-src%22:%22'self'%20data:%20https://www.gravatar.com%20http://www.gravatar.com%20app.getsentry.com%20https://*.githubusercontent.com%20https://0.gravatar.com%20https://ssl.google-analytics.com%20https://api.travis-ci.com%22,%22style-src%22:%22'self'%20https://fonts.googleapis.com%20'unsafe-inline'%20https://djtflbt20bdde.cloudfront.net%22,%22media-src%22:%22'self'%22,%22frame-src%22:%22'self'%20https://djtflbt20bdde.cloudfront.net%22,%22report-uri%22:%22https://65f53bfdfd3d7855b8bb3bf31c0d1b7c.report-uri.io/r/default/csp/reportOnly%22,%22block-all-mixed-content%22:%22%22,%22form-action%22:%22'self'%22,%22frame-ancestors%22:%22'none'%22,%22object-src%22:%22https://djtflbt20bdde.cloudfront.net%22%7D,%22contentSecurityPolicyMeta%22:false,%22contentSecurityPolicyHeader%22:%22Content-Security-Policy-Report-Only%22,%22ember-cli-mirage%22:%7B%22usingProxy%22:false,%22useDefaultPassthroughs%22:true%7D,%22exportApplicationGlobal%22:false,%22ember-modal-dialog%22:%7B%22hasEmberTether%22:%221.0.0-beta.0%22%7D,%22gaCode%22:%22UA-24868285-5%22%7D" />
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Cousine:400,400i,700,700i" rel="stylesheet" type="text/css">
<link integrity="" rel="stylesheet" href="https://cdn.travis-ci.com/assets/vendor-a81eb41c5ee4febe579413f3471371cd.css">
<link integrity="" rel="stylesheet" href="https://cdn.travis-ci.com/assets/travis-09e9fd719935bc7b2bb8737be7f1608b.css">
<link rel="mask-icon" href="https://cdn.travis-ci.com/images/favicon-c566132d45ab1a9bcae64d8d90e4378a.svg" color="black">
</head>
<body>
<noscript>
<div style="width: 60%; margin: auto;">
<img src="/images/logos/TravisCI-Mascot-1.png" alt="Travis CI mascot" width="200" style="float: left; margin: 1em 3em;">
<div>
<h1>Hey there!</h1>
<p>Looks like you have JavaScript disabled.</p>
<p>The Travis CI webclient needs JavaScript to work properly.</p>
<h2>Please enable JavaScript to get the best Travis CI experience.</h2>
<h3>Thank you!</h3>
</div>
</div>
</noscript>
<script src="https://cdn.travis-ci.com/assets/vendor-c9c51d2de6ae1c3e6b2d08eab59c92f8.js"></script>
<script src="https://cdn.travis-ci.com/assets/travis-a50dbdf6462ba3370273320bfbac7921.js"></script>
</body>
</html>
Any idea what I might have done wrong ?
Thanks in advance (if you need to see the source code just ask :) )
from travispy import TravisPy
t = TravisPy.github_auth(<your_github_token>)
user = t.user()
This is producing the following error
UserWarning: Unknown User attribute avatar_url .format(entity.class.name, key))
from travispy import TravisPy
t = TravisPy.github_auth(<your_github_token>)
user = t.user()
This is producing the following error:-
UserWarning: Unknown User attribute avatar_url.format(entity.class.name, key))
Hi @menegazzo.
I am trying use the master branch of the library travispy but i obtain this error
Debugging the code, i found this line
why are you trying import log instead logger ?
I've done the change in my locally, it is worked successful.
Do you have any reason to import log file ?
It would be helpful if the dates (*.started_at * finished_at, and User.synced_at & created_at) were a date object , or None if not yet set by Travis.
Hey,
I was looking through this library to see if it had a way to enable Travis CI hooks for a given repository, however it looks like it is just a read-only API wrapper for now. Are there any plans to add write capabilities in the future?
I would like to add a secure (encrypted) environment variable. Ideally by adding it to the repo settings directly but getting the repo key to encrypt the value and then writing it to my .travis.yml
is also an option.
Is there any way to do this with TravisPy or do I need to use requests/create a PR myself?
I'm attempting to track a repo through the API, but it seems like this is a manual thing. Is this correct? There is an unanswered stack overflow post here. Any ideas on how to overcome this through travispy or the travis-ci api?
Make sure all code is tested and covered.
Also check if documentation is up-to-dated.
Hi,
I won't pretend to know your release cycle or principals, but I'm curious if you would be willing to cut a version from what is in master, or at least sha 82869b6
I'm using this now since it has User.sync()
, which is a feature I need.
Thanks!
I've been using travispy
for a long time now, has worked flawlessly for months.
It started failing on me recently though, for reasons unclear to me (my best guess is a change in the Travis API for now).
Here's the traceback I'm seeing:
Traceback (most recent call last):
File "/tmp/eb-scripts/pr_check.py", line 478, in <module>
main()
File "/tmp/eb-scripts/pr_check.py", line 441, in main
res = travis(github_account, repository, github_token, owner=owner)
File "/tmp/eb-scripts/pr_check.py", line 354, in travis
retained_log_lines = jobs[0][1].log.body.split('\n')
File "/tmp/travispy/travispy/entities/job.py", line 94, in log
return self._load_one_lazy_information(Log)
File "/tmp/travispy/travispy/entities/_entity.py", line 292, in _load_one_lazy_information
'entity_id',
File "/tmp/travispy/travispy/entities/_entity.py", line 252, in _load_lazy_information
result = load_method(self._session, **{load_kwarg: property_ref})
File "/tmp/travispy/travispy/entities/_entity.py", line 92, in find_one
contents = get_response_contents(response)
File "/tmp/travispy/travispy/_helpers.py", line 34, in get_response_contents
raise TravisError(contents)
travispy.errors.TravisError
My pr_check.py
script is available at https://github.com/boegel/eb-scripts/blob/master/pr_check.py .
It fails when trying to grab the log from https://travis-ci.org/easybuilders/easybuild-easyconfigs/builds/340553691 .
Any ideas on what may be broken here?
build = t.build(branch.id)
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.7/dist-packages/travispy/travispy.py", line 184, in build
return Build.find_one(self._session, build_id)
File "/usr/local/lib/python2.7/dist-packages/travispy/entities/_entity.py", line 102, in find_one
dependency = entity_class._load(contents[name], session)
File "/usr/local/lib/python2.7/dist-packages/travispy/entities/_entity.py", line 184, in _load
setattr(entity, key, value)
AttributeError: 'Commit' object has no attribute 'branch_is_default'
I am using Travis Pro and I was able to get branch.id properly using github authentication token. Any idea why im getting this error?
Is it possible to run a specific branch of git repo rather than just running master always?
from travispy import TravisPy
print("Get TravisPy")
t = TravisPy()
print("Get build")
build = t.builds(slug="menegazzo/travispy")[0]
print("Get job")
job = t.job(build.job_ids[0])
Actual output:
$ python /tmp/test.py
Get TravisPy
Get build
Get job
/usr/local/lib/python2.7/site-packages/travispy/entities/_entity.py:196: UserWarning: Unknown Commit attribute branch_is_default
.format(entity.__class__.__name__, key))
Expected output:
$ python /tmp/test.py
Get TravisPy
Get build
Get job
The ruby client has an option to sanitise the log, either by removing unprintable, or removing the colors also.
https://github.com/travis-ci/travis.rb/blob/master/lib/travis/tools/safe_string.rb
This can be easily added to Log
, something like
def remove_unprintable(s):
return regex.sub('[^[:print:]\x1b\n]', '', s)
def remove_ansi_color(s):
return regex.sub('\x1b[^mK]*[mK]', '', s)
class Log
...
def colorized(self):
return remove_unprintable(self.body)
def clean(self):
return remove_ansi_color(self.colorized())
Would you be happy to include something like that?
In addition, I have a log parser that breaks the log into a sequence of named blocks, consisting of either lines containing meta job information or the commands from the yml with block names corresponding to the .yml blocks. Block with commands have command + output + exit code for each command in block, where applicable.
I need to clean it up a little more, to get rid of some remaining spaghetti, but it now correctly handles some 600 logs including most of the usual job scenarios, and a few different types of .travis.yml , mostly for Python projects. There will no doubt the scenarios that it doesnt handle properly, especially for very old travis logs when the infrastructure was different, but it provides a solid foundation for additional corner cases to be handled.
Would you be interested in log parsing being included in travispy, or would that be out of scope? I dont mind either way; just looking for direction.
The current TravisPy uses Travis API V2 which is scheduled to be deprecated sometime soon in 2018. TravisPy needs to be upgraded to utilize the V3 version.
When TravisPy.github_auth
fails it returns None. It would be good to log some debug information on why it failed, that is, which return code it got etc.
Hi @menegazzo , this is not an issue is a question Do you still maintain this package? My question is because I'm planning to use it for a new development that is about to begin, but as you can imagine we don't want to use an abandoned library.
Another question, I checked the code a little, but I cannot find the ssh_keys management implementation, it is done? or not yet?
Thanks in advance
Docstrings mention active
and it's listed in Repo.__slots__
For example:
>>> repo = TravisPy().repo("moggers87/salmon")
>>> repo.last_build_state # fetches build state fine
u'errored'
>>> repo.active
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: active
https://travis-ci.org/menegazzo/travispy/jobs/81966568
$ coverage run --source=travispy setup.py test
Traceback (most recent call last):
File "/home/travis/virtualenv/python3.2.5/bin/coverage", line 9, in <module>
load_entry_point('coverage==4.0', 'console_scripts', 'coverage')()
File "/home/travis/virtualenv/python3.2.5/lib/python3.2/site-packages/pkg_resources/__init__.py", line 519, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/home/travis/virtualenv/python3.2.5/lib/python3.2/site-packages/pkg_resources/__init__.py", line 2630, in load_entry_point
return ep.load()
File "/home/travis/virtualenv/python3.2.5/lib/python3.2/site-packages/pkg_resources/__init__.py", line 2310, in load
return self.resolve()
File "/home/travis/virtualenv/python3.2.5/lib/python3.2/site-packages/pkg_resources/__init__.py", line 2316, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/home/travis/virtualenv/python3.2.5/lib/python3.2/site-packages/coverage/__init__.py", line 13, in <module>
from coverage.control import Coverage, process_startup
File "/home/travis/virtualenv/python3.2.5/lib/python3.2/site-packages/coverage/control.py", line 14, in <module>
from coverage.annotate import AnnotateReporter
File "/home/travis/virtualenv/python3.2.5/lib/python3.2/site-packages/coverage/annotate.py", line 81
dest.write(u' ')
^
SyntaxError: invalid syntax
https://pypi.python.org/pypi/coverage/4.0 omits support for 3.0-3.2.
So either travispy drops support for Python 3.2, or uses coverage 3.7.1 on Python 3.2 ( https://pypi.python.org/pypi/coverage/3.7.1 ).
How would I go about getting all build logs associated with a given repository?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.