Giter Club home page Giter Club logo

travispy's People

Contributors

6c1 avatar adamchainz avatar hugovk avatar jayvdb avatar m1keil avatar menegazzo avatar nicoddemus avatar rdhyee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

travispy's Issues

Changelog?

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. ๐Ÿ˜ƒ

Tests expect build.config contains 'os: linux'

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?

Log Body Empty

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.

[Question]: Trigger a build without push

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.

Add a way to actually load lazy information

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.

Missing support for pagination (i.e. 'offset') in builds

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]
>>>

Build without jobs

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')

Limited number of builds

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

Unclear error message

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?

Private repos only listed if they are manually enabled through travis-ci.com

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.

TravisError: [200] while using github_auth with PRIVATE url

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 :) )

Unknown User attribute

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))

Unknown User attribute error

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))

ImportError: cannot import name Entity

Hi @menegazzo.

I am trying use the master branch of the library travispy but i obtain this error

travispy_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 ?

dates as a date object

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.

Write to Travis API

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?

Secure environment variables

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?

[Question]

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?

Release 0.3.0

Make sure all code is tested and covered.
Also check if documentation is up-to-dated.

Release master to PYPI?

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!

unclear TravisError in get_response_contents when grabbing build log from Travis

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?

Requesting for the build via branch id is returning AttributeError

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?

t.job: "UserWarning: Unknown Commit attribute branch_is_default"

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

Sanitised log

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.

Raise errors instead of ignoring them

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.

[Question] still maintaining and ssh_keys

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

Repo.active raises attribute error

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

Python 3.2 coverage has a syntax error

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 ).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.