|
|
VineseedにZope
VineSeedにZope入れようという話
>>315 # テクニカルリファレンスには、ドキュメンテーション文字列とある 僕も最初そういうものだと思ってました。ドキュメントを自動生成してくれるものだと。 $ pydoc *.py と試しに打ち込んだのは内緒です
>>316 ミラーさせて頂きました なんか、くすぐったいですね^^ Apache 立てようと思ったんですが、配置の関係でハブを買わないといけなくなって、ちょっと遅れそうです。 解からないことあったら教えてください。うまくいったらノートも繋いで、Zope27臨時サーバ立てるつもりです。
>>315 そもそも__doc__ってなんの為にある? これ、今の自分が答えるのとても難しいです。今日はパス(涙
>> objectに__doc__が無いと内容がないと判断する、と言う事でしょうか? 少なくとも正規のものではないと判断していると思います。次の行 doc = getattr(object, '%s__doc__' % entry_name, None) は理解不能
>> 今回のclass objectWapper(Wapper,c): pass これが問題で、このクラス定義のところにやってくると lib/python/App/class_init.py の default_class_init__(self): メソッドまで飛びます それから戻ってくると python2.1 では __doc__ があり、2.2 では無いのです。 それで、強引に docstring コードを突っ込んだわけで、結果オーライとなったようです。 ちなみに、class_init.py でなんか特殊なことやってるようには見えませんでした。
objectWapper(Wrapper, c) でクラス定義が多重継承になっていますが、 Wrapper は LocalFS 内の通常のクラスで、c が extension class と表示されます。 というわけで拡張クラスを含む多重継承がどうなるのかを調べることになりました。
>>289 ミラーしてもらって一向にかまわないですよ
ご好意に甘えてミラーさせて頂きました。 左側の黄色部分「Vine+Zope(RPM)」→「owaZopeRPMで運用」に「ミラー」先あります。
LocalFSのエラーの件を今までの事を整理していて、そもそも__doc__ってなんの為にある? ZPublisher/BaseRequest.py ---------- doc = getattr(subobject, '__doc__', None) if doc is None: doc = getattr(object, '%s__doc__' % entry_name, None) ---------- docは、判定に使ってあるだけのようです。(__doc__を調べてる事でなにを解決しようとしてるのか?) classには必ず__doc__が判別できるように書かないと__doc__の継承はできない(owaさん談) で、__doc__ってなんの為にあるのでしょう。 __doc__のpythonでの定義みたいな物はなんでしょう。
# テクニカルリファレンスには、ドキュメンテーション文字列とある。
追記: エラー内容を機械翻訳すると、URLは空容器である。オブジェクトは必ずdocstringを持っていなくてはいけません. と言っているのかな(機械翻訳に適当に枝葉をつけた)
objectに__doc__が無いと内容がないと判断する、と言う事でしょうか? 例えば 今回のclass objectWapper(Wapper,c): pass もろ、まんまって感じですね。
# このように考えていくと、owaさんのやったパッチ正解みたいな感じがします。
>>312 今日は中途半端(?)な状態なので返事差し控えます。少しずつ進んでる気がします。 寝ようと思ったらSeedのダウンロードが終わらないので...
>>312 英語の前に日本語の勉強が必要 私はC言語やりすぎでPythonの感覚がなかなかつかめないです(TT とても読み易い言語なんで、もっと早くからやっていれば(これは言わない約束でしたか)
>>python2.2の和訳文章のサブクラス化をよんで... なんかPEP252,253も必要な気がしてきました 結局ZopeとPython2.2の両方を理解しなければいけないとも感じてます
>> LocalFSJPもowaさんのパッチで正常動さしました こっちは、いただければRPMも作ります
# 今回のパッチで、Zope,Zope26での動作に支障がないことは、一応確認しています。
>>300,311 # とにかく Python2.1.3 と 2.2.2 の違いにもっていければすっきりできると思ったので ですねぇ。一番違和感のないやり方でしょう。 先ほどから、owaさんのサイトでpython2.2の和訳文章のサブクラス化をよんで、 ---------- class Wrapper: """Mix-in class used to save object changes.""" ----------を↓ class Wrapper: def __init__(self): self.__doc__="""Mix-in class used to save object changes.""" と書くのが正規の書き方なのかなとか思ってやってましたが、 ------------------------------ class ObjectWrapper(Wrapper, c): + """Mix-in class used to save object changes.""" pass ------------------------------ を書かないと、やはりダメです。 和訳してあっても文章を理解するのは難しいです。
# 英語の前に日本語の勉強が必要(私
PS: LocalFSJPもowaさんのパッチで正常動さしました。
>>308 お手間を取らせました もう少し深く見て行くと、今のところ全然理解できません。こちらこそお手間をとらせるようです。 昨日のパッチは結果的にうまく動いてるように見えるだけかもしれません。 まだまだ時間がかかりそうですが、何か解かったら報告します
# Seed で MySQL が 3.23.56 にたった今アップされたようです(これも、まちのさんでした)
>>308 お手間を取らせました そうじゃありません^^。問題の解析はこれからなので、とてもつっこみ欲しかったりします^^
現在解かっているのは class ObjectWrapper(Wrapper, c): pass のところで c.__dict__ の中に {__doc__: None} が存在します(Python2.2.2の場合) Python2.1.3では__doc__要素が存在しません。 idle で追っていくと、これが悪さをしている感じです 例のパッチが結果オーライだったとしても、もっと正確に解析する必要があります。
# 昨日はダイアモンドルールのせいだと思ったのですが違うようです # とにかく Python2.1.3 と 2.2.2 の違いにもっていければすっきりできると思ったので
|
|