/usr/share/pyshared/lazr.restful-0.19.3.egg-info/PKG-INFO is in python-lazr.restful 0.19.3-0ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 | Metadata-Version: 1.1
Name: lazr.restful
Version: 0.19.3
Summary: Publish Python objects as RESTful resources over HTTP.
Home-page: https://launchpad.net/lazr.restful
Author: LAZR Developers
Author-email: lazr-developers@lists.launchpad.net
License: LGPL v3
Download-URL: https://launchpad.net/lazr.restful/+download
Description: ..
This file is part of lazr.restful.
lazr.restful is free software: you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, version 3 of the License.
lazr.restful is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public License
along with lazr.restful. If not, see <http://www.gnu.org/licenses/>.
************
lazr.restful
************
lazr.restful is a library for publishing Python objects through a
RESTful web service. To tell lazr.restful which objects you want
exposed and how, you annotate your existing Zope interfaces.
The WSGI example web service
============================
The example web service in src/lazr/restful/example/wsgi/ is the best
place to start understanding lazr.restful. It's a very simple web
service that uses a subset of lazr.restful's features and can be run
as a standalone WSGI application. An explanation of the code can be
found in src/lazr/restful/example/wsgi/README.txt
The full example web service
============================
To understand all of lazr.restful, you should look at the web service
defined in src/lazr/restful/example/base/. It defines a simple
application serving information about cookbooks and recipes. The
interfaces (interfaces.py) are annotated with lazr.restful decorators
that say which fields and methods to publish from IRecipe, ICookbook,
and so on. The implementations of those interfaces are in root.py.
The machinery of lazr.restful takes the decorators in interfaces.py,
and generates an interface that maps incoming HTTP requests to
operations on the actual objects defined in root.py. You don't have to
do any HTTP server programming to get it to work (though at the moment
you do have to know a fair amount about Zope).
You can test the example web service by running `bin/test`. The
doctests in src/lazr/restful/example/base/tests use a fake httplib2
connection to simulate HTTP requests to the web service. You can watch
the tests make GET, PUT, POST, PATCH, and DELETE requests to the web
service. Start with root.txt.
Other code
==========
Two other pieces of code might be of interest when you're starting
out.
* declarations.py contains all the Python
decorators. docs/webservice-declarations.txt shows how to use them.
* docs/webservice.txt shows an example of a webservice that creates
Entry and Collection classes directly rather than generating them
with the declarations. If you want to use lazr.restful without using
zope.schema, this is the test to look at.
=====================
NEWS for lazr.restful
=====================
0.19.3 (2011-09-20)
===================
Fixed bug 854695: exceptions with no __traceback__ attribute would cause an
AttributeError
0.19.2 (2011-09-08)
===================
Fixed bug 842917: multiple values for ws.op in a request would generate a
TypeError
0.19.1 (2011-09-08)
===================
Fixed bug 832136: original tracebacks were being obscured when exceptions are
rereaised.
0.19.0 (2011-07-27)
===================
A new decorator, @accessor_for, has been added to
lazr.restful.declarations. This makes it possible to export a method
with bound variables as an accessor for an attribute.
0.18.1 (2011-04-01)
===================
Fixed minor test failures.
The object modification event will not be fired if a client sends an
empty changeset via PATCH.
The webservice may define an adapter which is used, after an operation on a
resource, to provide notifications consisting of namedtuples (level, message).
Any notifications are json encoded and inserted into the response header using
the 'X-Lazr-Notification' key. They may then be used by the caller to provide
extra information to the user about the completed request.
The webservice:json TALES function now returns JSON that will survive
HTML escaping.
0.18.0 (2011-03-23)
===================
If the configuration variable `require_explicit_versions` is set,
lazr.restful will not load up a web service unless every field, entry,
and named operation explicitly states which version of the web service
it first appears in.
0.17.5 (2011-03-15)
===================
When a view is registered for an exception, but the view contains no
information that's useful to lazr.restful, re-raise the exception
instead of trying to render the view.
0.17.4 (2011-03-08)
===================
Reverted the client cache representations to JSON-only. Call sites need to
escape the JSON_PLUS_XHTML_TYPE representation which may require
JSONEncoderForHTML or declaring the the script as CDATA.
0.17.3 (2011-03-08)
===================
Fixed a bug in exception handling when the associated response code is
in the 4xx series.
0.17.2 (2011-03-03)
===================
Several of the techniques for associating an exception with an HTTP
response code were not working at all. Fixed them.
0.17.1 (2011-02-23)
===================
Add a new test to the testsuite.
0.17.0 (2011-02-17)
===================
Added the ability to get a combined JSON/HTML representation of an
entry that has custom HTML representations for some of its fields.
0.16.1 (2011-02-16)
===================
Fixed a bug that prevented a write operation from being promoted to a
mutator operation.
0.16.0 (No official release)
============================
If each entry in the web service corresponds to some object on a
website, and there's a way of converting a web service request into a
website request, the web service will now provide website links for
each entry.
You can suppress the website link for a particular entry class by
passing publish_web_link=False into export_as_webservice_entry().
Validation errors for named operations will be properly sent to the
client even if they contain Unicode characters. (Launchpad bug 619180.)
0.15.4 (2011-01-26)
===================
Fixed inconsistent handling of custom HTML field renderings. An
IFieldHTMLRenderer can now return either Unicode or UTF-8.
0.15.3 (2011-01-21)
===================
lazr.restful will now complain if you try to export an IObject, as
this causes infinite recursion during field validation. We had code
that worked around the infinite recursion, but it wasn't reliable and
we've now removed it to simplify. Use IReference whenever you would
use IObject.
0.15.2 (2011-01-20)
===================
lazr.restful gives a more helpful error message when a published
interface includes a reference to an unpublished interface. (Launchpad
bug 539070)
lazr.restful's tests now pass in Python 2.7. (Launchpad bug 691841)
0.15.1 (2011-01-19)
===================
Fixed a redirect bug when a web browser requests a representation
other than JSON.
Removed overzealous error checking that was causing problems for
browsers such as Chromium. (Launchpad bug 423149.)
0.15.0 (2010-11-30)
===================
Added an optimization to the WADL docstring handling that results in a 30%
decrease in WADL generation time for large files.
0.14.1 (2010-10-24)
===================
Fixed a unicode encoding bug that precluded reporting exceptions with
non-ASCII characters.
0.14.0 (2010-10-05)
===================
Rework ETag generation to be less conservative (an optimization).
0.13.3 (2010-09-29)
===================
Named operations that take URLs as arguments will now accept URLs
relative to the versioned service root. Previously they would only
accept absolute URLs. PUT and PATCH requests will also accept relative
URLs. This fixes bug 497602.
0.13.2 (2010-09-27)
===================
Avoided an error when looking at a Location header that contains
characters not valid in URIs. (An error will probably still happen,
but having it happen in lazr.restful was confusing people.)
0.13.1 (2010-09-23)
===================
Removed a Python 2.6-ism to restore compatibility with Python 2.5.
0.13.0 (2010-09-06)
===================
Add the ability to annotate an exception so the client will be given the
exception message as the HTTP body of the response.
0.12.1 (2010-09-02)
===================
Make WADL generation more deterministic.
0.12.0 (2010-08-26)
===================
Added the ability to take a read-write field and publish it as
read-only through the web service.
0.11.2 (2010-08-23)
===================
Optimized lazr.restful to send 'total_size' instead of
'total_size_link' when 'total_size' is easy to calculate, possibly
saving the client from sending another HTTP request.
0.11.1 (2010-08-13)
===================
Fixed a bug that prevented first_version_with_total_size_link from
working properly in a multi-version environment.
0.11.0 (2010-08-10)
===================
Added an optimization to total_size so that it is fetched via a link when
possible. The new configuration option first_version_with_total_size_link
specifies what version should be the first to expose the behavior. The default
is for it to be enabled for all versions so set this option to preserve the
earlier behavior for previously released web services.
0.10.0 (2010-08-05)
===================
Added the ability to mark interface A as a contributor to interface B so that
instead of publishing A separately we will add all of A's fields and
operations to the published version of B. Objects implementing B must be
adaptable into A for this to work, but lazr.restful will take care of doing
the actual adaptation before accessing fields/operations that are not directly
provided by an object.
0.9.29 (2010-06-14)
===================
Added invalidation code for the representation cache on events
generated by lazr.restful itself. Made the cache more robust and fixed
a bug where it would totally redact a forbidden representation rather
than simply refuse to serve it. Made it possible for a cache to refuse
to cache an object for any reason.
0.9.28 (2010-06-03)
===================
Special note: This version adds a new configuration element,
'enable_server_side_representation_cache'. This lets you turn the
representation cache on and off at runtime without unregistering the
cache utility.
Fixed some test failures.
0.9.27 (2010-06-01)
====================
Added the ability to define a representation cache used to store the
JSON representations of entry resources, rather than building them
from scratch every time. Although the cache has hooks for
invalidation, lazr.restful will never invalidate any part of the cache
on its own. You need to hook lazr.restful's invalidation code into
your ORM or other data store.
0.9.26 (2010-05-18)
===================
Special note: This version adds a new configuration element,
'compensate_for_mod_compress_etag_modification'. If you are running
lazr.restful behind an Apache server, setting this configuration
element will make mod_compress work properly with lazr.restful. This
is not a permanent solution: a better solution will be available when
Apache bug 39727 is fixed.
Special note: This version removes the configuration element
'set_hop_to_hop_headers'. You can still define this element in your
configuration, but it will have no effect.
Removed code that handles compression through hop-to-hop
headers. We've never encountered a real situation in which these
headers were useful. Compression can and should be handled by
intermediaries such as mod_compress. (Unfortunately, mod_compress has
its own problems, which this release tries to work around.)
0.9.25 (2010-04-14)
===================
Special note: This version introduces a new configuration element,
'caching_policy'. This element starts out simple but may become more
complex in future versions. See the IWebServiceConfiguration interface
for more details.
Service root resources are now client-side cacheable for an amount of
time that depends on the server configuration and the version of the
web service requested. To get the full benefit, clients will need to
upgrade to lazr.restfulclient 0.9.14.
When a PATCH or PUT request changes multiple fields at once, the
changes are applied in a deterministic order designed to minimize
possible conflicts.
0.9.24 (2010-03-17)
====================
Entry resources will now accept conditional PATCH requests even if one
of the resource's read-only fields has changed behind the scenes
recently.
0.9.23 (2010-03-11)
===================
There are two new attributes of the web service configuration,
"service_description" and "version_descriptions". Both are optional,
but they're useful for giving your users an overview of your web
service and of the differences between versions.
0.9.22 (2010-03-05)
===================
Special note: this version will break backwards compatibility in your
web service unless you take a special step. See
"last_version_with_named_mutator_operations" below.
Refactored the code that tags request objects with version
information, so that tagging would happen consistently.
By default, mutator methods are no longer separately published as
named operations. To maintain backwards compatibility (or if you just
want this feature back), put the name of the most recent version of
your web service in the "last_version_with_mutator_named_operations"
field of your IWebServiceConfiguration implementation.
0.9.21 (2010-02-23)
===================
Fixed a family of bugs that were treating a request originated by a
web browser as though it had been originated by a web service client.
0.9.20 (2010-02-16)
===================
Fixed a bug that broke multi-versioned named operations that take
the request user as a fixed argument.
0.9.19 (2010-02-15)
===================
A few minor bugfixes to help with Launchpad integration.
0.9.18 (2010-02-11)
===================
Special note: this version contains backwards-incompatible
changes. You *must* change your configuration object to get your code
to work in this version! See "active_versions" below.
Added a versioning system for web services. Clients can now request
any number of distinct versions as well as a floating "trunk" which is
always the most recent version. By using version-aware annotations,
developers can publish the same data model differently over time. See
the example web service in example/multiversion/ to see how the
annotations work.
This release _replaces_ one of the fields in
IWebServiceConfiguration. The string 'service_version_uri'_prefix has
become the list 'active_versions'. The simplest way to deal with this is
to just put your 'service_version_uri_prefix' into a list and call it
'active_versions'. We recommend you also add a floating "development"
version to the end of 'active_versions', calling it something like
"devel" or "trunk". This will give your users a permanent alias to
"the most recent version of the web service".
0.9.17 (2009-11-10)
===================
Fixed a bug that raised an unhandled exception when a client tried to
set a URL field to a non-string value.
0.9.16 (2009-10-28)
===================
Fixed a bug rendering the XHTML representation of exproted objects when they
contain non-ascii characters.
0.9.15 (2009-10-21)
===================
Corrected a misspelling of the WADL media type.
0.9.14 (2009-10-20)
===================
lazr.restful now runs without deprecation warnings on Python 2.6.
0.9.13 (2009-10-19)
===================
Fixed WADL template: HostedFile DELETE method should have an id of
HostedFile-delete, not HostedFile-put.
0.9.12 (2009-10-14)
===================
Transparent compression using Transfer-Encoding is now optional and
disabled by default for WSGI applications. (Real WSGI servers don't
allow applications to set hop-by-hop headers like Transfer-Encoding.)
This release introduces a new field to IWebServiceConfiguration:
set_hop_by_hop_headers. If you are rolling your own
IWebServiceConfiguration implementation, rather than subclassing from
BaseWebServiceConfiguration or one of its subclasses, you'll need to
set a value for this. Basically: set it to False if your application
is running in a WSGI server, and set it to True otherwise.
0.9.11 (2009-10-12)
===================
Fixed a minor import problem.
0.9.10 (2009-10-07)
===================
lazr.restful runs under Python 2.4 once again.
0.9.9 (2009-10-07)
==================
The authentication-related WSGI middleware classes have been split
into a separate project, lazr.authentication.
Fixed a bug that prevented some incoming strings from being loaded by
simplejson.
0.9.8 (2009-10-06)
==================
Added WSGI middleware classes for protecting resources with HTTP Basic
Auth or OAuth.
0.9.7 (2009-09-24)
==================
Fixed a bug that made it impossible to navigate to a field resource if
the field was a link to another object.
0.9.6 (2009-09-16)
==================
Simplified most web service configuration with grok directives.
0.9.5 (2009-08-26)
==================
Added a function that generates a basic WSGI application, given a
service root class, a publication class, and a response class.
Added an AbsoluteURL implementation for the simple
ServiceRootResource.
Added an adapter from Django's Manager class to IFiniteSequence, so
that services that use Django can serve database objects as
collections without special code.
Added an AbsoluteURL implementation for objects that provide more than
one URL path for the generated URL.
For services that use Django, added an adapter from Django's
ObjectDoesNotExist to lazr.restful's NotFoundView.
Fixed some testing infrastructure in lazr.restful.testing.webservice.
Fix some critical packaging problems.
0.9.4 (2009-08-17)
==================
Fixed an import error in simple.py.
Removed a Python 2.6ism from example/wsgi/root.py.
0.9.3 (2009-08-17)
==================
Added a lazr.restful.frameworks.django module to help with publishing
Django model objects through lazr.restful web services.
TraverseWithGet implementations now pass the request object into
get().
Create a simplified IServiceRootResource implementation for web
services that don't register their top-level collections as Zope
utilities.
Make traversal work for entries whose canonical location is beneath
another entry.
Raise a ValueError when numberic dates are passed to the
DatetimeFieldMarshaller.
0.9.2 (2009-08-05)
==================
Added a second example webservice that works as a standalone WSGI
application.
Bug 400170; Stop hacking sys.path in setup.py.
Bug 387487; Allow a subordinate entry resource under a resource where there
would normally be a field. Navigation to support subordinate IObjects is
added to the publisher.
0.9.1 (2009-07-13)
==================
Declare multipart/form-data as the incoming media type for named
operations that include binary fields.
0.9 (2009-04-29)
================
- Initial public release
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
|