Skip to main content

A wrapper over bets.42cc.co API

Project description

Installation

pip install bets-api==0.0.7

Basic Usage

import bets
api = bets.BetsApi('<your token>')  # get token via admin UI

bets = api.get_active_bets()  # list of active bets (same as on dashboard)
len(bets)
# => 70
bets[13]
# => {...} dict that represents the bet

bets = api.get_active_bets(project_id=123)  # list of active bets filtered by project id
len(bets)
# => 20

api.get_project_slug(bets[13])
# => u'favim'

api.stakes_in(bets[13])
# => {'stakes': [{u'amount': Decimal('0.20000'),
#      u'created': datetime.datetime(2014, 6, 2, 13, 36, 4, 322000),
#      u'id': 3565,
#      u'side': 0,
#      u'user': u'username'}],
#    'sum': Decimal('0.20000')}

api.stakes_out(bets[13])
# => {'stakes': [], 'sum': 0}

Creating bets

api.create_budget(project_slug, expires_at, target_budget, bets_until, min_stake)
# => {u'bet_id': 26, u'status': u'ok'}
  • expires_at, bets_until - must be datetime objects

  • bets_until, min_stake - not required

Also, there are methods for creating other types of bets:

create_no_bugs(self, project_slug, expires_at, bets_until=None, min_stake=None):
create_budget(self, project_slug, expires_at, target_budget, bets_until=None, min_stake=None):
create_deadline(self, project_slug, expires_at, target_deadline, bets_until=None, min_stake=None):
create_human(self, description, expires_at, bets_until=None, min_stake=None):
create_billable_hours(self, kava_username, expires_at, hours, start_date, end_date, bets_until=None, min_stake=None):
create_closed_tickets(self, project_slug, expires_at, ticket_nums, bets_until=None, min_stake=None):
create_fitting_budget(self, percent, expires_at, days=90, bets_until=None, min_stake=None):
create_fitting_deadline(self, percent, expires_at, days=90, bets_until=None, min_stake=None):
create_without_defects(self, percent, expires_at, days=90, bets_until=None, min_stake=None):
create_estimate_ticket(self, project_slug, expires_at, ticket_num, bets_until=None, min_stake=None):

Subscribe to Event.BET_EXPIRED

import bets
import gevent
api = bets.BetsApi('<your token>')

def cb(bet):
    print 'Bet changed: [%s] %s' % (bet['id'], bet['description'])

api.set_callback(bets.Event.BET_EXECUTED, cb)
api.subscribe(bets.Event.BET_EXECUTED, [1020, 1009, 1010, 11])

gevent.joinall(api.event_loop())
# => Bet changed: [1009] [42-jobs] 0 bugs (2014-05-02 18:00)
#    Bet changed: [1010] [coinhand] budget <= 400.0 (2014-04-30 11:15)
#    Bet changed: [11] [kavyarnya] deadline <= 2014-03-01 (2014-02-14 02:00)

For more sophisticated example see examples/.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bets-api-0.0.7.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bets-api-0.0.7.linux-x86_64.tar.gz (8.1 kB view details)

Uploaded Source

File details

Details for the file bets-api-0.0.7.tar.gz.

File metadata

  • Download URL: bets-api-0.0.7.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for bets-api-0.0.7.tar.gz
Algorithm Hash digest
SHA256 30562941d8459cc87372fd4470e2d9114e3f5dea3ae38724edba9b2b8b69965f
MD5 377d11e6ef1552b43e3a4a59930bc915
BLAKE2b-256 aeace712b3a9d9d51a1f0383a0ced9584b044df76378f4bdfbdbfbed3ec72c59

See more details on using hashes here.

File details

Details for the file bets-api-0.0.7.linux-x86_64.tar.gz.

File metadata

File hashes

Hashes for bets-api-0.0.7.linux-x86_64.tar.gz
Algorithm Hash digest
SHA256 487b0d14112b4f9d079de46f583355607eb628e8f6c764ed81c6e0676b889814
MD5 2b3eec849d2c72c6a7bd14a935eb6fab
BLAKE2b-256 2ffe48c6fbb7ad7fe095aa7bee2578bf63587e6c9c5c75b7691000afff091685

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page