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:
RevisionActionfile
1.5modifypkgsrc/www/py-uliweb/Makefile
1.3modifypkgsrc/www/py-uliweb/PLIST
1.2modifypkgsrc/www/py-uliweb/distinfo