構成変換

本稿では,中構成システムの変更を紹介した astropy 0.4およびそれを使用するためにコードを更新する方法。

ユーザー上の

構成ファイル

もしプロファイルをまだ編集中でなければ ~/.astropy/config/astropy.cfg あなたは何もできません。1回目の導入時 astropy 0.4、自動的に構成ファイルテンプレートに置き換えられます。 astropy 0.4。

もしあなたがプロファイルを編集したら、それは変わらないだろう。しかし、 astropy 0.4へのインストール ~/.astropy/config/astropy.0.4.cfg それがそうです。どのカスタム設定を導入すべきかを決定するために、このファイルに対する変更を手動で比較することができます。

支出を節約する.

Pythonから構成項目が完全に削除されました。逆に,プロファイルを直接編集しなければならない.

名前を立て直す

構成パラメータの位置は簡略化されているため,つねに上位サブパケットに現れている. astropy 低レベルのファイル名を使用するのではなく(これは、実際にユーザに開示されるべきではない実装の詳細である)。Python側では、構成項目が常に通過します。 conf オブジェクトはサブパックのルートディレクトリの下に置かれる.

科学的計算結果に影響を与えるいくつかの構成項は、構成パラメータとして完全に削除され、Pythonコードから変更されなければならない科学状態オブジェクトに変換されています。

次の表にすべての移動(元のプロファイル位置のアルファベット順)を示す.古い名前はPythonおよびプロファイルで継続して使用されます。 astropy バージョン0.4サイクルは astropy 0.5。

構成パラメータの名前が変更されました

古いプロファイル位置

古いPython位置

新しいプロファイル位置

新しいPython位置

[] unicode_output

UNICODE_OUTPUT

不変

conf.unicode_output

[coordinates.name_resolve] name_resolve_timeout

coordinates.name_resolve.NAME_RESOLVE_TIMEOUT

[astropy.utils.data] remote_timeout

astropy.utils.data.conf.remote_timeout

[coordinates.name_resolve] sesame_url

coordinates.name_resolve.SESAME_URL

除去

coordinates.name_resolve.sesame_url.get/set

[coordinates.name_resolve] sesame_database

coordinates.name_resolve.SESAME_DATABASE

除去

coordinates.name_resolve.sesame_database.get/set

[cosmology.core] default_cosmology

cosmology.core.DEFAULT_COSMOLOGY

除去

cosmology.default_cosmology.get/set

[io.fits] enable_record_valued_keyword_cards

io.fits.ENABLE_RECORD_VALUED_KEYWORD_CARDS

不変

io.fits.conf.enable_record_valued_keyword_cards

[io.fits] extension_name_case_sensitive

io.fits.EXTENSION_NAME_CASE_SENSITIVE

不変

io.fits.conf.extension_name_case_sensitive

[io.fits] strip_header_whitespace

io.fits.STRIP_HEADER_WHITESPACE

不変

io.fits.conf.strip_header_whitespace

[io.fits] use_memmap

io.fits.USE_MEMMAP

不変

io.fits.conf.use_memmap

[io.votable.table] pedantic

io.votable.table.PEDANTIC

[io.votable] pedantic

io.votable.conf.pedantic

[logger] log_exceptions

logger.LOG_EXCEPTIONS

不変

logger.conf.log_exceptions

[logger] log_file_format

logger.LOG_FILE_FORMAT

不変

logger.conf.log_file_format

[logger] log_file_level

logger.LOG_FILE_LEVEL

不変

logger.conf.log_file_level

[logger] log_file_path

logger.LOG_FILE_PATH

不変

logger.conf.log_file_path

[logger] log_level

logger.LOG_LEVEL

不変

logger.conf.log_level

[logger] log_to_file

logger.LOG_TO_FILE

不変

logger.conf.log_to_file

[logger] log_warnings

logger.LOG_WARNINGS

不変

logger.conf.log_warnings

[logger] use_color

logger.USE_COLOR

[] use_color

conf.use_color

[nddata.nddata] warn_unsupported_correlated

nddata.nddata.WARN_UNSUPPORTED_CORRELATED

[nddata] warn_unsupported_correlated

nddata.conf.warn_unsupported_correlated

[table.column] auto_colname

table.column.AUTO_COLNAME

[table] auto_colname

table.conf.auto_colname

[table.jsviewer] jquery_url

table.jsviewer.JQUERY_URL

不変

table.jsviewer.conf.jquery_url

[table.jsviewer] datatables_url

table.jsviewer.DATATABLES_URL

不変

table.jsviewer.conf.datatables_url

[table.pprint] max_lines

table.pprint.MAX_LINES

[] max_lines

conf.max_lines

[table.pprint] max_width

table.pprint.MAX_WIDTH

[] max_width

conf.max_width

[utils.console] use_color

utils.console.USE_COLOR

[] use_color

conf.use_color

[utils.data] compute_hash_block_size

astropy.utils.data.COMPUTE_HASH_BLOCK_SIZE

不変

astropy.utils.data.conf.compute_hash_block_size

[utils.data] dataurl

astropy.utils.data.DATAURL

不変

astropy.utils.data.conf.dataurl

[utils.data] delete_temporary_downloads_at_exit

astropy.utils.data.DELETE_TEMPORARY_DOWNLOADS_AT_EXIT

不変

astropy.utils.data.conf.delete_temporary_downloads_at_exit

[utils.data] download_cache_block_size

astropy.utils.data.DOWNLOAD_CACHE_BLOCK_SIZE

不変

astropy.utils.data.conf.download_cache_block_size

[utils.data] download_cache_lock_attempts

astropy.utils.data.download_cache_lock_attempts

不変

astropy.utils.data.conf.download_cache_lock_attempts

[utils.data] remote_timeout

astropy.utils.data.REMOTE_TIMEOUT

不変

astropy.utils.data.conf.remote_timeout

[vo.client.conesearch] conesearch_dbname

vo.client.conesearch.CONESEARCH_DBNAME

[vo] conesearch_dbname

vo.conf.conesearch_dbname

[vo.client.vos_catalog] vos_baseurl

vo.client.vos_catalog.BASEURL

[vo] vos_baseurl

vo.conf.vos_baseurl

[vo.samp.utils] use_internet

vo.samp.utils.ALLOW_INTERNET

[vo.samp] use_internet

vo.samp.conf.use_internet

[vo.validator.validate] cs_mstr_list

vo.validator.validate.CS_MSTR_LIST

[vo.validator] conesearch_master_list

vo.validator.conf.conesearch_master_list

[vo.validator.validate] cs_urls

vo.validator.validate.CS_URLS

[vo.validator] conesearch_urls

vo.validator.conf.conesearch_urls

[vo.validator.validate] noncrit_warnings

vo.validator.validate.noncrit_warnings

[vo.validator] noncritical_warnings

vo.validator.conf.noncritical_warnings

付属パッケージ作成者

この2つの機能を同時にサポートする付属パッケージについては, astropy 0.3と0.4が続いている astropy 0.3構成説明は、引き続き有効である必要があります。構成項目の保存はその中から完全に削除されていることに注意されたい astropy 0.4ループを破棄していないので、構成がパケットをプログラム的に保存することが重要である場合、この状態を保存する別の方法を考慮する必要があるかもしれません。

しかし発表することで astropy 0.5、 astropy 0.3構成APIは機能しなくなります。以下にどのように変換するかを紹介する. astropy 0.3サポート astropy バージョン0.4以降。支援することはできません astropy 0.3、0.4、0.5が同時に。以下 pkgname あなたが関連しているパッケージの名前です。

属性はプロファイルを自動生成する. ConfigurationItem それが見つけたオブジェクトは削除された。逆に、プロジェクトはハードコードされた“テンプレート”構成ファイルを含むべきです。 pkgname/pkgname.cfg それがそうです。従来,エンドユーザのアップグレードを容易にするためには,すべての値をアノテーションすべきである.例えば:

[nddata]

## Whether to issue a warning if NDData arithmetic is performed with
## uncertainties and the uncertainties do not support the propagation of
## correlated uncertainties.
# warn_unsupported_correlated = True

付属ソフトウェアパッケージは使用に移行すべきです astropy.config.ConfigItem 対象をメンバーとする astropy.config.ConfigNamespace サブクラスです。

例えば次は astropy 0.3以上のバージョンで構成項目を定義する方法:

from astropy.config import ConfigurationItem

ENABLE_RECORD_VALUED_KEYWORD_CARDS = ConfigurationItem(
    'enabled_record_valued_keyword_cards', True,
    'If True, enable support for record-valued keywords as described by '
    'the FITS WCS distortion paper. Otherwise they are treated as normal '
    'keywords.')

EXTENSION_NAME_CASE_SENSITIVE = ConfigurationItem(
    'extension_name_case_sensitive', False,
    'If True, extension names (i.e. the EXTNAME keyword) should be '
   'treated as case-sensitive.')

以上のコードを新しいメソッドに変換すると以下のようになる.

from astropy import config as _config

class Conf(_config.ConfigNamespace):
    """
    Configuration parameters for `astropy.io.fits`.
    """

    enable_record_valued_keyword_cards = _config.ConfigItem(
        True,
        'If True, enable support for record-valued keywords as described by '
        'the FITS WCS distortion paper. Otherwise they are treated as normal '
        'keywords.',
        aliases=['astropy.io.fits.enabled_record_valued_keyword_cards'])

    extension_name_case_sensitive = _config.ConfigItem(
        False,
        'If True, extension names (i.e. the ``EXTNAME`` keyword) should be '
        'treated as case-sensitive.')
conf = Conf()

Pythonでの移動/名前変更構成項

ConfigAlias 構成項が適合した場合 astropy 0.3スタイル ConfigurationItem 1つまで astropy 0.4スタイル ConfigItem 1つは ConfigNamespace それがそうです。

上の例では、下位互換性のフックを追加して、エントリの古いPython位置をユーザコードから動作し続けるようにしています:

ENABLE_RECORD_VALUED_KEYWORD_CARDS = _config.ConfigAlias(
    '0.4', 'ENABLE_RECORD_VALUED_KEYWORD_CARDS',
    'enable_record_valued_keyword_cards')

構成ファイルへの構成項目の移動/再命名

プロファイル内で構成項目を移動またはリネームする場合、 aliases Kwarg to ConfigItem 使用することができ、したがって、古い位置は予備位置として使用され続けるであろう。例えばプロジェクトの古い位置が

[coordinates.name_resolve]
sesame_url = http://somewhere.com

あなたはこれがモジュールで実現された事実であることを放棄したいかもしれません name_resolve 構成を格納するだけで coordinates

[coordinates]
sesame_url = http://somewhere.com

定義している ConfigItem この項目については aliases Kwargは構成項の古い位置を列挙することができる:

sesame_url = _config.ConfigItem(
    ["http://somewhere.com"],
    """Docstring""",
    aliases=['astropy.coordinates.name_resolve.sesame_url'])