dolmen.relations

소프트웨어 스크린 샷:
dolmen.relations
소프트웨어 정보:
버전: 0.5
업로드 날짜: 11 May 15
개발자: Souheil Chelfouh
라이센스: 무료
인기: 18

Rating: 1.5/5 (Total Votes: 2)

dolmen.relations는 오브젝트 간의 관계의 독립 단순하고 간단하게 구현 zc.relation 위에 얇은 층이다.
시작하기
패키지의 기능을 설명하기 위해, 우리는 먼저 온전한 환경을 설정 :
>>> 조프 가져 오기 구성 요소에서
>>> zope.container.btree 수입 BTreeContainer에서
>>> SM = component.getGlobalSiteManager ()
>>> 무리 = getRootFolder () [ '무리'] = BTreeContainer ()
관계 카탈로그
dolmen.relations는 관계를 등록하고 이들을 찾는 담당 RelationCatalog라는 구성 요소를 제공한다 :
>>> dolmen.relations는 RelationCatalog, ICatalog를 가져올에서
>>> sm.registerUtility (RelationCatalog (), ICatalog)
관계 컨테이너
관계를 저장하고, 필요한 이벤트를 트리거하기 dolmen.relations는 BTREE 수용체를 제공한다 :
>>> dolmen.relations 수입 RelationsContainer에서
>>> 관계 = 무리 [ '_ 관계'] = RelationsContainer ()
함유량
이제, 우리는 시작하는 일부 콘텐츠가 필요합니다. 테스트 모듈은 우리가 여기에 사용하려는 맘모스 영속 객체를 정의한다 :
>>> dolmen.relations.tests는 맘모스를 가져에서
>>> 만프레드 = 무리 [ '만프레드'] = 맘모스 ()
>>> 군터 = 무리 [ '군터'] = 맘모스 ()
우리의 개체가 지속되고있는 int ID를 부여됩니다 있는지 확인하기 위해, 우리는 커밋 :
>>> 수입 거래
>>> transaction.commit ()
관계
dolmen.relations에 의해 제안 된 관계는 "B에"유형입니다. 그들은 당신이 대상 객체와 소스 오브젝트를 링크 할 수 있습니다. 테스트를 위해, 우리는 소스 및 대상으로 사용할 예정이 맘모스 개체를 만들려고하고있다 :
>>> dolmen.relations 수입 값에서, 어떤
>>> zope.intid.interfaces 수입 IIntIds에서
>>> IDS = component.getUtility (IIntIds)
>>> rcatalog = component.getUtility (ICatalog)
>>> gunther_id = ids.getId (군터)
>>> manfred_id = ids.getId (만프레드)
간단한 관계
제 simpliest 관계 타입 RelationValue이다. 이 관계는 소스 ID 및 대상 ID 생성됩니다 :
>>> 관계 [ "간단한"] = values​​.RelationValue (gunther_id, manfred_id)
당신은 목표 및 / 또는 소스 ID를 제공함으로써 관계를 조회 할 수 있습니다 :
>>> 발견 = 목록 (rcatalog.findRelations ({ 'target_id'manfred_id}))
>>> 발견
[<에 dolmen.relations.values​​.RelationValue 개체 ...>]
관계는 소스 또는 대상을 해결 전용 속성이 있습니다
>>> 관계 = found.pop ()
>>> 관계
<...에 dolmen.relations.values​​.RelationValue 개체>
>>> relation.source
<맘모스 군터>
>>> relation.target
<맘모스 만프레드>
태그 관계
관계의 두 번째 유형 TaggedRelationValue이다. 그것은 우리가 소스 목표 커플, 유니 코드 문자열 목록으로 태그 목록에 추가 할 수 있습니다 :
>>> 관계 [ "태그"] = values​​.TaggedRelationValue (
... gunther_id, manfred_id, 태그 = [u'grok ', u'dolmen'])
관계는 여전히 기본 쿼리를 검색 할 수 있습니다 :
>>> 발견 = 목록 (rcatalog.findRelations ({ 'target_id'manfred_id}))
>>> 발견
[<...에 dolmen.relations.values​​.RelationValue 개체> <에 dolmen.relations.values​​.TaggedRelationValue 개체 ...>]
또한, 현재의 태그 값을 이용하여 조회 할 수있다 :
>>> 발견 = 목록 (rcatalog.findRelations ({ '태그'어떤 ( 'grok 수')}))
>>> 발견
[]
>>> 발견 = 목록 (rcatalog.findRelations ({ '태그'어떤 ( '드루팔')}))
>>> 발견
[]
상태 저장과 관련하여
관계의 세번째 유형은 StatefulRelationValue이다. 그것은 유니 코드 문자열로 소스 - 대상 커플, 상태 정보, 추가 :
>>> 관계 [ "상태"] = values​​.StatefulRelationValue (
... gunther_id, manfred_id, 상태 = U "개인")
관계는 여전히 기본 쿼리를 검색 할 수 있습니다 :
>>> 발견 = 목록 (rcatalog.findRelations ({ 'target_id'manfred_id}))
>>> 발견
[, <...에 dolmen.relations.values​​.TaggedRelationValue 개체> <에 ... dolmen.relations.values​​.RelationValue 개체> <에 dolmen.relations.values​​.StatefulRelationValue 개체 ...>]
또한, 현재 상태 문자열을 사용하여 조회 할 수 있습니다 :
>>> 발견 = 목록 (rcatalog.findRelations ({ '상태'어떤 ( '개인')}))
>>> 발견
[]
>>> 발견 = 목록 (rcatalog.findRelations ({ '상태'어떤 ( '공공')}))
>>> 발견
[]
이벤트
객체가 삭제 될 때마다, 소스 또는 대상으로 사용 관계도 삭제된다 :
>>> 델 무리 [ '만프레드']
>>> 인쇄 목록 (무리 [ '_ 관계']. 키 ())
[]
>>> 발견 = 목록 (rcatalog.findRelations ({ 'target_id'manfred_id}))
>>> 발견
[]

이 릴리스의 새로운 기능 : ID가 제거되었을 때

intids에서 오류를 잡아. 이 경우 None을 반환하지 않습니다.

요구 사항 :

파이썬

개발자의 기타 소프트웨어 Souheil Chelfouh

코멘트 dolmen.relations

댓글을 찾을 수 없습니다
코멘트를 추가
이미지를 켜십시오!