Warning
Client version 2 is obsolete, please use Client version 3 instead.
ResourcesΒΆ
Client represents API with two kinds of resources: Individuals and Collections. For example when we request
all projects with name copr
we would receive collection ProjectList
resource:
>>> from copr import create_client2_from_params # using dev server for test >>> cl = create_client2_from_params(root_url="http://copr.stg.fedoraproject.org/") >>> projects = cl.projects.get_list(name="copr", limit=3) >>> for p in projects: >>> print(p) <Project #1: msuchy/copr> <Project #1503: vgologuz/copr> <Project #2796: mosquito/copr>
Access to elements in collection is done through iterator interface. Since API limits number of elements
retrieved in the one request, collections has method next_page()
to retrieve more objects:
>>> more_projects = projects.next_page() >>> for p in more_projects: >>> print(p) <Project #2805: esmil/copr> <Project #4266: frostyx/copr>
If we already knew project id we could get an individual Project
resource:
>>> p = cl.projects.get_one(1835)
Individual resource allows to directly access entity properties and also provides some helper functions:
>>> print(p.owner, p.name) (u'saltstack', u'salt') # obtain active build chroots >>> print("\n".join(map(str, p.get_project_chroot_list()))) <Project chroot: fedora-22-x86_64, additional packages: [], comps size if any: 0> <Project chroot: fedora-22-i386, additional packages: [], comps size if any: 0> # change project description (require auth) >>> p.description = u"Hello world!" >>> p.update() # instead of cl.projects.update(p._entity)