Resources — python-copr 1.63 documentation

# 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-fe-dev.cloud.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)