Path to this page:
Subject: CVS commit: pkgsrc/www/py-uliweb
From: Wen Heping
Date: 2014-07-29 04:42:01
Message id: 20140729024201.CA90196@cvs.netbsd.org
Log Message:
Update to 0.3.1
Upstream changes:
0.3.1 Version
-----------------
* Add qqmail mail server backend support, thanks to Yubin Wang <harry198344 \
AT gmail.com>
* Add `yes` option, remove `--force` of makeapp,makeproject command
* Remove `has_options` attribute in Command class
* Fix `include` bug in ini
* Fix condition test bug of orm.get()
* Add `sqlshell` command
* Add `having` and `join` support to ORM
* Add whole database dump and load support #33
* Add NotFound to __all__ of orm
* Fix recorder bug
0.3 Version
-----------------
* Fix pyini "key=" for raw output bug
* Fix objcache for Lazy field bug, it'll refresh first if found Lazy field
* Fix executing orm command raise Exception not be thrown bug
* Refact multidb support
* Change UserWarn to DeprecationWarning
* Fix syncdb for different table name between `Model.__tablename__` and settings bug
* Remove `get_cached()` and add `cache` parameter to `Model.get()`
* Add `get_local_cache()` and `clear_local_cache()` in order to compatiable
with SimpleFrame implementation
* ORM `Property.to_str()` will return string but not unicode for CHAR and VARCHAR.
* Simplify server_default, if integer given, it'll be convert to `text(n)`
* `ManyResult.all()` can receive a `cache` parameter
* Improve `dump()` and `load()`, add PickleType , ManyToMany support
* Refact objcache app implementation and add `exclude` config option
* Remove primary_key detect, because multi primary_key columns can make \
composite primary key,
add partition support for mysql
* add None patch process, you can set '', 'empty, 'exception'.
* move uliweb/orm/middle*.py to uliweb/contrib/orm
* move uliweb/i18n/middle_i18n.py to uliweb/contrib/i18n
* move storage from core to utils directory
* improve count process
* Fix Reference and ManyToMany dump and load bug
* Add `is_in_web()` funciton, so you can test if current frame is in web executation
* Add `--gevent` support to call command
* Add `any` to Model, Result, ManyResult
* Add `clear_prefix()` to redis_cli APP, this feature need redis 2.6+ version
* Add version check to redis_cli APP, default is disabled
* Add `clear_table()` to objcache APP
* Add 'id' parameter to `get()` and `get_object()` and `get_cached_object()` \
functions,
so that if the ID can't be found in cache, condition (old parameter) will be used.
And when id and condition given both, only when id is not integer or valid \
expression
condition will be used. So in most cases, you don't need pass condition.
* If not set url option for session of database type, it'll automatically use \
ORM settings if exists
* Add settings and local_settings env variables support
* Fix count bug
* Change orm requirement.txt, add uliweb-alembic package
* generic app add avalon and mmgrid support
* Model.put() not is deprecated, you should use save
* `generic.py` add version support when saving, and add `save` callback parameter.
0.2.6 Version
-----------------
* Add warning output for Reference class parameter of relation properties definition.
* Fix manual and total process bug in ListView and SelectListView
* Fix rawsql bug
* Add `get_object()` support in Generic ListView
* Fix `get_cached()` bug
* Fix process_files in generic add and edit functions bug
* Add `import readline` before enter shell environment
* change occ name to version
* Improve autocomplete in shell command
* Fix manytomany cached value is not used when do the save, because of not stored
in `_old_values`
* If you've already define primary key in Model, then it'll not create id property
for you, just like:
```
user_id = Field(int, primary_key=True, autoincrement=True)
```
* Fix sqldot bug and improve sqlhtml generation
* Eanble colored log output by default.
* Add recorder app, you can use it to record the visit url, and test it later
0.2.5 Version
-----------------
* Fix config template and add `uwsgi` shell support
* Add environment variables support in `settings.ini`. For example, there is a
`MYSQL_PORT` defined in environment, so you can defined something in settings.ini:
```
[DEFAULT]
port = $MYSQL_PORT
port_str = '${MYSQL_PORT}'
```
`$MYSQL_PORT` is the same as `${MYSQL_PORT}`. Just when the variable follows
identifier, so `${}` can easily separate between them.
* Add `STATIC_COMBINE_CONFIG` configuration, you can toggle static combination \
with it.
Default is False. The configuration is:
```
[STATIC_COMBINE_CONFIG]
enabled = False
```
* Fix objcache app bug, if not fields defined in settings, it'll use all columns \
of table
* Add `get_table` function to `functions`, you can use it to get table object. Used
in `uliweb.contrib.tables` app.
* Add `local_cache` to local in SimpleFrame, and it can be used to store require \
relative
cache values, and it'll be empty after each require process.
* Improve `get_object()` function in ORM, add `use_local` parameter, so the cached
value will be checked in `local_cache` first, and also save it in local_cache when
get a value from cache or database.
* Improve objcache config format, you can also define table like this:
```
user = {'fields':['username'], 'expire':expire_time, \
'key':callable(instance)|key_field}
#or
user = ['username', 'nickname']
#or
user =
```
If no fields defined, it'll use all fields of Model. And if expire is 0 or
not defined, it'll not expired at all.
`key` will be used to replace `id`, if you want another key value, and it
can be also a callable object, it'll receive an instance of Model parameter,
so you can create any key value as you want.
* Add Optimistic Concurrency Control support for ORM, so you should defined `version`
Field first in Model, then when you save the object, you should use:
```
obj.save(occ=True)
```
If there is already other operation saved the record, it'll raise an `SaveError`
Exception by default, because the version has been changed. You can also pass:
* `occ_fieldname` used to defined the version fieldname, default is `version`
* `occ_exception` used to enabled Exception raised, default is `True`, if you
set it `False` it'll return False, but not raise an Exception.
0.2.4 Version
-----------------
* Fix ORM is not compatible with SQLAlchemy 0.9.1.
* add `__contains__` to functions, so you can test if an API is already defined, just
use:
```
'flash' in functions
```
* Refact generic.py, remove `functions.flash` and `functions.get_fileserving` \
dependencies by default.
* Fix `yield` support in view function, you can also used in gevent environment.
* Fix `rawsql()` bug for different database engine
* Fix `jsonp()` dumps Chinese characters bug
* Add `trim_path()` function to `utils/common.py`, it can trim a file path to
limited length, for example:
```
>>> a = '/project/apps/default/settings.ini'
>>> trim_path(a, 30)
'.../apps/default/settings.ini'
```
Default limited length is 30.
* Add ORM connection information output when given `-v` option in command line. And
the password will be replace with `'*'`.
* Add multiple apps support for `makeapp` command.
* Refactor `save_file()` process, add `headers` and `convertors` parameter.
* Fix `call_view()` invoke `wrap_result` bug. Missing pass `handler` parameter \
to wrap_result.
Files: