Skip to content

v1.0.0

Choose a tag to compare

@tschaume tschaume released this 07 Aug 07:43

Version 1.0.0

Commits

  • [5201dc8] update requirements
  • [4fce58f] minor bugfix
  • [35a4aab] skip tests for now
  • [f9381a3] add github workflows
  • [9f3df71] add requirements testing
  • [09d20d8] add pre-commit config
  • [5de0751] pre-commit stuff
  • [cd49bab] setup.py: prep for own package
  • [055e0e0] open dependencies
  • [0a3373f] use mimerender-pr36
  • [701a262] operators: remove filter variables
  • [bf700dd] fix date before/after operators
  • [8010b6d] operators: missing self
  • [2ff6794] operators: better get_bool_value
  • [c4d5f7c] replace _order_by/order with _sort
  • [50e65ba] enable more operators
  • [ff852e9] skip_post_save
  • [5192d3b] dependabot PRs
  • [274c4ba] revert check dirty fields to enable related resources save
  • [91be2ba] make sure to retrieve all fields on PUT
  • [6dbec4c] render_gz: protect dataframe keys for csv export
  • [9e181c5] better json and csv export
  • [fc46724] multiple objects can point to same related doc
  • [45caa69] bugfix and allow pagination in Download
  • [de1be3d] ignore non-DBRef in fetch_related_resources
  • [648f892] avoid redundant serialization on download
  • [0768fbc] serialize DBRefs too
  • [af4c2e5] Bump flask from 1.1.4 to 2.0.1
  • [0636366] bump requirements
  • [381a4f9] fix get_queryset
  • [b22c87e] ValidationError messages
  • [10f918b] reimplement fetch_related_resources
  • [f06fa43] dependabot: fix target branch
  • [d0d0166] update bugfixes for EmbeddedDocumentListField and BaseDict
  • [5543e0d] operators: fast_float; Date
  • [9f5c53c] update related resources in ListFields
  • [c94c129] avoid timeout during process_objects
  • [b751fa9] cheaper way to convert queryset to list
  • [509298c] views: rm unneeded module variable
  • [f2ffc71] catch NaN values
  • [f761cda] set limit for BulkUpdate/Delete
  • [a4d0479] Create dependabot.yml (#6)
  • [36a50ea] bump reqs, remove cleancat
  • [5321f3e] zipstream not used anymore
  • [4cd95d9] bump fastnumbers
  • [f082363] use bulk_update_limit
  • [0732409] remove dangling import; comment reformat
  • [b02c3e6] use fastnumbers for index access
  • [9b7b247] avoid ServerTimeouts on BulkCreate/Delete
  • [8bd70bc] catch undefined exceptions, print traceback
  • [255a898] apply qfilter after params
  • [8c16a74] serialize all fields of related resources for download
  • [0e543dd] add unflatten dep
  • [94ccb39] allow_nan and catch list field
  • [b760d92] unflatten raw_data, minor cleanup
  • [aaf69ef] use params and set_value
  • [6e7ebd2] set dict field if unset previously via null
  • [665200f] check last_modified for S3 object update
  • [6079049] better download logs
  • [b055add] catch _Missing
  • [02b5122] use ma.utils.get/set_value if available
  • [2378f47] channel bugfix
  • [aee404c] download SSE messages
  • [e2a6309] glom & LazyReference
  • [ed83495] include document fields back in queryset mask
  • [34be238] apply field pagination to queryset
  • [4ea378e] use getattr; allow dynamic fields in queryset mask
  • [906a1ed] fix time import
  • [f9753db] save progress on S3 downloads
  • [d5a20c0] use glom for path access; skip paginate_fields on Download
  • [fc0955c] rm bulk_update_limit, respect skip/limit, include has_more/counts
  • [0e625e9] BulkCreate and BulkDelete
  • [b17a8af] render_gz: use cherrypicker for csv
  • [bafe8fd] catch unset value in csv export
  • [e2b426c] short_mime, render_gz
  • [fd832b0] make_zip mimerender, add Download method
  • [a640d0a] check dot delimiter for primary key
  • [3b3a6ec] also check for id
  • [854a952] return internal dotty dict, check primary key
  • [d990155] switch to dotty_dict
  • [48a9614] allow DictField update/set to None
  • [5fa2000] enable sort direction
  • [15415cb] fix DictField update, only return updated fields
  • [b9b7c11] support partial DictField update
  • [24ac2c4] catch Marshmallow validation errors
  • [81886dc] enable regex patterns for ordering
  • [3aa5343] enable pattern filters
  • [60efe89] add page/per_page params as option for _skip/_limit
  • [93946ab] add total_count/pages
  • [389abaa] check total_pages before field pagination
  • [bfdf194] raise error if total_pages too high
  • [82f54d1] get_with_list_index; bugfix serialize_list_field
  • [cd10c46] get_queryset: fix mask for nested fields
  • [79b0292] get_queryset: fix mask
  • [03c29af] mongoengine3
  • [08e404f] operators: add swagger type
  • [8c0be9c] paginate fields
  • [2f9c082] get full object when updating
  • [b6f79e2] apply mask in get_queryset
  • [9c7cbee] enable nested _fields
  • [ac523b6] try_float for numeric operators
  • [5671fba] partial validation and skip primary_key in PUT
  • [7c553ac] marshmallow_mongoengine schema, optional cleancat
  • [00dc7ad] separately delete last object in BulkDelete
  • [3c9ce3b] implement BulkCreate and BulkDelete
  • [5accf69] improved error handling
  • [d600580] support Decimal128 in MongoEncoder
  • [f5e7f90] forward kwargs; skip_post_delete option
  • [dbe7103] set view_method when serializing
  • [12a3db4] use list(dict.fromkeys()) to maintain order
  • [b785449] static get_optional_fields()
  • [d7a1784] support LazyReferenceField
  • [a30770b] operators: add type and try float
  • [b2537ef] separate register class for app factory
  • [c3bab7b] consistent method names
  • [6422f16] update requirements and test config
  • [c104cde] Fix empty "xx__in=" filters (closeio#131)
  • [4c2c00b] Call fetch_related_resources for a single object, too. (closeio#130)
  • [672ac7d] Document how Operators work and how you can create your own. (closeio#128)
  • [ce260b1] Fix docstring typo, respresentation -> representation (closeio#127)
  • [268455c] Some attributes don't make sense if we don't have a request (closeio#126)
  • [9a04099] Do not depend on flask-views package (closeio#121)
  • [5634697] Merge pull request closeio#122 from closeio/mongorestexc-pass
  • [43bf428] Fix .message on py3
  • [5ed3641] Reduce MongoRestException to pass for py3 compat
  • [94b4ea8] Merge pull request closeio#123 from closeio/update-pymongo
  • [265ae81] Fix lint
  • [a25949e] Test 3.6
  • [4b51a53] Update pymongo
  • [4c4bb1c] Ignore non-pep8 warning
  • [4fe0607] Merge pull request closeio#119 from gzqichang/master
  • [c8dcd64] fix error when change an object with {}.
  • [015628c] Remove old circle.yml
  • [6cceceb] Upgrade to CircleCI v2
  • [e399552] v0.2.3 ver bump
  • [937c751] Merge pull request closeio#114 from closeio/extensible-resource-serialize-fields
  • [a4f8d25] Extensible resource field serialization
  • [91d1e7b] v0.2.2
  • [d8ff7ef] Fix unicode validation errors + tests (closeio#101)
  • [9bad170] v0.2.1
  • [9505668] Merge pull request closeio#100 from closeio/fix-decoding
  • [73d0373] Fix decoding unicode JSON payload in Python 2.x
  • [26fc8a6] v0.2
  • [c10b0ce] Merge pull request closeio#99 from closeio/python3-support
  • [f139b21] Only access document_name if necessary
  • [c86b67c] Unnecessary import
  • [3af075e] Use Circle Python versions
  • [6686c1b] Support for Python 3 / latest MongoEngine
  • [b86eb89] Modified import statements to make align with flask_* (closeio#97)
  • [bc10815] Merge pull request closeio#96 from closeio/test-fixes
  • [9c41f23] Fix tests that could fail due to dictionary key order. Thanks @saurabh1e for uncovering this in closeio#95
  • [b5a1f00] Run tests via tox
  • [cf5535b] Bulk update limit (closeio#92)
  • [1d88ba9] Document a bunch of Resource methods/fields + style tweaks (closeio#91)
  • [7d7fb74] Bulk update improvements: (closeio#89)
  • [0a68c24] flake8 settings should have gone into setup.cfg (closeio#90)
  • [61eac3b] Don't return parent's child_document_resources in subclasses. (closeio#87)
  • [c81fb7e] Merge pull request closeio#84 from closeio/flake8
  • [95520fe] tighten up flake8's config
  • [504ecaa] use flake8 before the regular tests
  • [7a9ff54] Merge pull request closeio#83 from closeio/flake8
  • [1f62cde] add flake8 to the project
  • [5a360b3] Merge pull request closeio#80 from closeio/subresource-delegation
  • [61583be] More clear condition when to delegate
  • [3241177] overridable Resource#get_max_limit
  • [74f2a6e] Fixed docstring formatting
  • [d32dec4] Improved subresource creation, added docs
  • [a04ab7d] Fixed delegation logic
  • [7ffc47a] Moved .data assignment to _create_subresource
  • [059fc3c] Delegate to subresource when validating and updating
  • [bc363e8] allow_nan is not an arg of JSONEncoder.default
  • [e7f009a] add a bad Accept header test
  • [e0174e2] Merge pull request #76 from closeio/strict-json-validation
  • [4523837] raise an error instead of responding with invalid JSON + document Resource.serialize
  • [775a25f] remove travis + add circle badge
  • [d95452c] dont accept invalid JSON containing NaN, inf, -inf
  • [3fd444e] Merge pull request #75 from closeio/better-error-for-chunked-request
  • [0be34ee] unit test for Transfer-Encoding: chunked
  • [8b2339f] Return a clearer error message when somebody uses Transfer-Encoding: chunked
  • [ffb6196] Merge pull request #74 from closeio/validate-negative-skip
  • [4a882b1] more consistent wording
  • [f8138ff] dont allow negative skips
  • [d1c5d14] Update URLs
  • [bbd44f0] Let isint handle None without throwing an error
  • [7b30af2] Merge pull request #62 from elasticsales/cleanup
  • [d926f32] Require pymongo 2.8.x
  • [5689ea7] Fixes a condition where in some cases dicts that are equal are returned as not equal because of a different key order. Simplifies equal() method and removes the inner cmp() method, which also collides with a Python built-in
  • [349e28c] Remove Resource._get
  • [0910b48] get_update_dict -> get_object_dict
  • [dfc5d31] Adding fields param to get_update_dict
  • [6459190] Fix error handling
  • [b598355] Fix validation error handling
  • [bcb54fc] Making tests pass
  • [2032384] test fixes
  • [c55d45d] Only update fields that exist in the request payload
  • [addb400] Remove _save and handle validation errors in _dispatch_request
  • [557b243] Allow for ID strings in comparison in update_object
  • [8605ae5] Cleanup: Remove forms from mongoengine. Move equal to utils. New get_update_dict method
  • [b3b0583] Allow params in the request body so we don't run into URL length issues
  • [e58c633] Don't trigger a query for SafeReferenceField ID lookup for related resources
  • [0968fff] Merge pull request #60 from elasticsales/fix-aware-cmp
  • [0734477] Unit test for changing DateTime
  • [c2488e2] Clarifying comment
  • [8d2a215] cmp() now compares aware datetimes
  • [ac1ed01] _dirty_fields should only be not None when using a schema
  • [b220351] Merge pull request #57 from elasticsales/handle_serialization_error
  • [df7152c] better check of fixed_obj in handle_serialization_error
  • [984c9e4] Move handle_serialization_error to Resource
  • [3eccba9] handle_serialization_error so that a single serialization error in a List method doesn't break the whole response
  • [46db980] handle empty uri params
  • [ba6df5d] On mongoengine ValidationError return the error dict
  • [dde12ce] set up a view_method helper on a resource instance
  • [0ea49ed] fix requirements
  • [12f8150] fixed method permissions + unit tests + minor code cleanup
  • [5735dc7] Merge pull request #54 from elasticsales/respect-accept
  • [efc084e] handle NotFound properly
  • [055fbd1] return json errors instead of raising werkzeug exceptions
  • [2cc26ef] handle renamed fields properly for _order_by
  • [f27fb4b] If we reraise UnknownKeyError in value_for_field, don't include the field in the response.
  • [0510aa0] Use get_requested_fields for fetch_related_resources in get_objects to use the same fields parsing logic.
  • [268a4ba] value_for_field returns values for fields that don't exist in the resource or the object
  • [066c995] Ability to return optional fields (?_fields=_all returns all of them)
  • [8718ccd] fields fix
  • [7896eed] Making the default _limit configurable
  • [d6f3184] Adding Resource.get_requested_fields which is designed to customize returned fields per request
  • [877452d] Serialize None properly in callable related_resources
  • [98abbd2] Allow returning extra data in Resource.get_objects + test
  • [f9a092a] remove print
  • [f0e414d] Fix + test for related_resources
  • [a565f8a] handle GenericReferenceField well + organize imports
  • [d38374c] explanatory comment
  • [47aba4d] Merge pull request #51 from elasticsales/optimize-ref-cmp
  • [0938516] cache the _db_data.get(field) value
  • [689b0e8] use a simple comparison + use .pk where appropriate
  • [a6624f1] optimize comparison of reference fields by comparing the ids and not performing a full db lookup
  • [2215031] Moving content type validation out of init so we can still manually use the resource in POST requests.
  • [1e93cc0] Allow to pass custom list of fields to serialize()
  • [4963762] Move cmp_fields to utils, move parts of get_objects into helper functions.
  • [62e8eb6] Fix filters if op is empty (TODO: test)
  • [aa9cd9c] Filter/operator bug fixes. Explicitly requiring allow_negation to allow filter negation.
  • [bff1104] Ensure JSON data for POST/PUT is a dict.
  • [cab92ed] freezing Flask-WTF
  • [cbc750e] Avoid extra queries for DocumentProxy objects
  • [e965622] Fixing build
  • [31e2f76] Travis: Use pip instead of setup.py install
  • [72c9e9d] Merge pull request #49 from elasticsales/feature-mongomallard
  • [fa8f89c] Fix requirement
  • [fe71620] Revert "Have a reference to the view on the main resource."
  • [dd45db0] Have a reference to the view on the main resource.
  • [1e69132] During updates, only set the fields that appeared in the request payload
  • [c29d0ef] No more support for nested lists since objs arent resolved properly
  • [eb77664] No more DecimalField since using mongomallard
  • [be4973d] During updates, only set the fields that appeared in the request payload
  • [44e442e] No more support for nested lists since objs arent resolved properly
  • [4d959ed] No more DecimalField since using mongomallard
  • [d74c283] just checking something out
  • [9bcd8bd] Merge branch 'master' of ssh://github.com/elasticsales/flask-mongorest into feature-mongomallard
  • [93268f9] Merge pull request #36 from floqqi/patch-2
  • [e4d85b4] Fix requirements for mongomallard
  • [1892fbd] Moving fetching of related resources to separate method + fixing ordering
  • [e29370a] Merge pull request #41 from wuurrd/bad_super_call
  • [1eb0d20] Don't evaluate lazy documents when comparing
  • [cb74bf3] Merge pull request #43 from elasticsales/max-limit-tweaks
  • [875d914] isint util function + _skip validation + cleaner code
  • [82e2077] broken reference test
  • [17e79d3] gracefully handle garbage limits
  • [30c0f09] respond with 400 for _limit exceeding max_limit
  • [48ab192] Remove stupid hack
  • [a1eb345] More changes for mongomallard
  • [0c13d1f] Modifications for mongomallard
  • [83f606e] Fix bad call to superclass method
  • [764f31c] reload sleep hack
  • [d43876f] Performance: Don't load raw_data every time we initialize a resource.
  • [cdb20f7] fixed install_requires
  • [342a48c] graceful getattr for field_instance
  • [70a4deb] extra tests for pagination (closes #21)
  • [00de4a8] skip/limit only after order_by
  • [3938e22] Merge pull request #33 from matchbox/query-embeddeddocumentfield
  • [fc3f6ab] Merge pull request #32 from matchbox/dictfield
  • [89dc2ed] Merge pull request #35 from floqqi/patch-1
  • [d7700f0] support specifying filters for EmbeddedDocumentFields
  • [2af6fff] more DictField/MapField updates
  • [6baec52] support DictField/MapField
  • [10a68db] allow querying on EmbeddedDocumentFields
  • [ea49be6] fixed issue #34
  • [6918a58] removing support for py26
  • [d99476f] Merge pull request #31 from matchbox/simplify-exact-query
  • [2f7a352] Oh the joy of timezone aware datetimes in Python
  • [758f280] Don't save related objects if they haven't changed.
  • [29d8b3e] Make mongorest work with latest cleancat
  • [3528193] don't specify a query type when using 'exact'
  • [6b3fdd3] Move logic from dispatch_request to helper method _dispatch_request
  • [ffc3363] Merge pull request #30 from philfreo/master
  • [1161ada] remove an unused qfilter lambda
  • [7c2a48d] remove duplicate qfilter lambda
  • [bc66d45] Merge pull request #23 from xogeny/uri_handling
  • [6e8d1b8] Merge pull request #26 from xogeny/richer_authorization
  • [16d0684] Print more descriptive error message if posting an incorrect Content-Type; Closes #28
  • [8cfcc4c] Merge pull request #25 from xogeny/requested_resource
  • [5893398] Cloning QuerySets
  • [e649e91] Trying to add some documentations so others can follow what I did here
  • [58944f0] Added support for read permissions.
  • [0edb075] Added some authorization methods
  • [0e312ff] Got rid of self.assertIn
  • [a5fd1e7] Extension to specify per-request resource types
  • [c5b6dc9] Fields are not returned from API as full URLs
  • [925dc11] Explicitly specifying the complete URL for resource Location in POSTS
  • [b1f1146] Damn, forgot to get rid of some print statements
  • [991e472] Added a utility method that generates URIs for a given Resource
  • [5a18bec] Exercising much more of my changes and tests are back to passing
  • [3154b7e] So close...
  • [cc7bf01] Added a test for new POST behavior and fixed on last bug
  • [ccbb3a1] Fixed a bug that caused tests to fail.
  • [6d2bba5] Fix problem with some field names.
  • [9a35109] Forgot a condition
  • [90bf306] Forgot a change to construct proper URIs
  • [1b73cf2] This makes sure all field are properly serialized
  • [f1434c0] Support for URI references to resources
  • [4c9f738] - Revert related changes from closeio@66e90ed
  • [260e7b4] Use client-side ordering for hinted related resources since MongoDB is slow.
  • [4d3f852] Merge pull request #16 from coagulant/patch-1
  • [87665f9] Merge pull request #17 from borism/master
  • [616c74f] Adding MongoEngine case-insensitive operators
  • [10246ab] Allow passing extra kwargs into register decorator
  • [81f416d] fix for #15
  • [1712696] Skip references if ListField(ReferenceField) has broken references (instead of throwing an error).
  • [90c066d] Adding save_related_fields which allows using cleancat with MongoEmbeddedReference. Adding MongoRestSchemaTestCase. Adding cleancat dependency.
  • [4566aeb] Merge pull request #14 from lucasvo/master
  • [6168bcb] Fix data corruption with bulk PUTs
  • [64f5268] If pagination is disabled, get_objects is setting the limit incorrectly.
  • [d584278] fixes for related resources inside get_related_resources. proper embedded doc treatment when using schemas
  • [c9deb1e] Merge pull request #12 from elasticsales/feature-optimize_related_resources
  • [70f04bb] dictfield may have complex objects in it that we must custom serialize
  • [8cf6c91] ignore pagination on custom qs's -- due to things like search
  • [7c7deab] fixing a bug where only the first item of a related_resource set was being serialized
  • [b8467d8] eleminate unnecessary qs evaluation in get_objects
  • [c402fc6] dont bulk fetch fields we don't use
  • [c204880] ability to pass in a qs to get_objects -- for things like searching
  • [ee1a54f] bug when value isn't a dbref
  • [5829ba4] removing prints
  • [66e90ed] cleanup
  • [ec376f9] Merge branch 'master' of ssh://github.com/elasticsales/flask-mongorest into feature-optimize_related_resources
  • [6e15dd9] optimizations WIP
  • [7262e6f] adding tests for datetime filtering
  • [c70ae42] reload on save_object
  • [a5affef] adding date serialization
  • [e2955ee] 400 on mongoengine validation errors
  • [a689e17] Merge branch 'master' into feature-validation
  • [bed78c2] adding an html render function andn template for easy viewing of json data from the browser
  • [6a8a01b] Fix exception in json_to_form_data
  • [532ad56] allow proper filtering + handle negate
  • [426b855] in operator
  • [48c7f62] Merge pull request #11 from elasticsales/feature-inoperator
  • [793d0db] allow proper filtering + handle negate
  • [fe5fa45] in operator
  • [11fa64f] Merge branch 'master' into feature-validation
  • [50d3dcb] support for comma-separated order by fields
  • [380395a] Fix exception in json_to_form_data
  • [8123d74] Simplify PUT/POST requests with cleancat.
  • [bf47e67] Fix for empty embedded documents (needs unit test).
  • [7e17d38] Initial support for cleancat schema validation.
  • [df9c374] Update .travis.yml
  • [9454697] Adding save_object() method that can be overridden by resource subclasses.
  • [d821e05] raise a 400 when invalid json is passed as input
  • [84d516e] serialize Decimals as strings, loading them back as decimals.
  • [a68d1d1] adding python2.6 support to fix #7
  • [afef81a] using updated mongoengine config structure
  • [4455a4c] moving to pypi flask-mongoengine
  • [64a9c9c] load obj from db before returning it to user. avoids ORM discrepancies for things like datetime precision.
  • [81bbc07] Temp workaround for missing timezone issue.
  • [771650c] Update .travis.yml
  • [31c5291] POST/PUT response should always match GET (including datetime precision)
  • [1e9a392] unused imports / whitespace
  • [8eb4584] Returning has_more in paginated requests. Always enforcing max_limit unless it's a bulk update.
  • [04f2e62] Fix form conversion of None type
  • [fa43086] Test against py3
  • [55e324d] Test against python26
  • [b0c30e4] Fix semantics of response_success/response_error
  • [23611ba] Fixing datetime + reference fields for forms.
  • [d142b63] Fix field renaming (if A is renamed to B, then B shouldn't be automatically renamed to A)
  • [3aa62c5] Fix error handling with bulk updates.
  • [8f5849a] Unit test improvements (more helpful assert messages)
  • [2e7def8] Support for bulk updates.
  • [e2b2e84] Fix renaming of fields where a->b, b->c would sometimes rename a to c.
  • [c349f1c] Adding Boolean filter operator + unit tests.
  • [b5fa97e] Making compare_req_resp output more readable.
  • [b2d7071] Fix handling of BooleanFields
  • [8ab7866] changing doc theme to flask_small
  • [5d21ea9] adding sphinx to requirements and making it easier for it to see the module from within docs
  • [6c51d5e] updating to flask doc theme
  • [09eba20] adding sphinx docs
  • [aeefa57] When returning a QuerySet in a resource method, properly serialize the models. Needs tests + further cleanup.
  • [8817cec] adding a max_limit to resource to try and avoid a simple DDoS of the db and API
  • [a1f3c74] nice text for pip directory
  • [1b16331] bumping version
  • [4d6a561] Merge pull request #2 from lucasvo/datetime-handling
  • [e782bcc] Tidying up
  • [854b535] Returning field value instead of None
  • [d8269d3] Adding dateutil requirement
  • [6192ed6] Adding test for a timezone offset.
  • [a81d0d5] Automatically handling DateTimeFields by using dateutil.parser.parse. Tested with ISO format
  • [bcd0f50] Update README.md
  • [d03527d] Merge branch 'master' of github.com:elasticsales/flask-mongorest
  • [935e6d4] moving to new setup.py nosetests
  • [90b84e7] Update README.md
  • [c668bc4] typo
  • [31fc930] fixes for running tests
  • [176914a] fixes for setup.py and testing
  • [ec51409] Adding cURL examples of how to interact with api
  • [9237d07] attempting to fix the test failure bug on travis
  • [39b37c9] Adding travis build status.
  • [903203a] adding a travis config
  • [d0b4c44] better README example app. Added authentication section.
  • [ec027a1] updating AUTHORS with urls
  • [b1981b1] correcting the repo url.
  • [151e3c2] Initial Commit