2017-02-28 7 views
0

jira 서버에서 이슈를 가져 오는 데 jira Python library을 사용하고 있습니다. 서버로드 및 네트워크 트래픽을 줄이기 위해 search_issues() 결과를 로컬로 직렬화 된 형식으로 저장하고 싶습니다. 대부분의 문제가 로컬에서 사용할 수 있다면 최근에 업데이트 된 문제 만 쿼리해야합니다.Python에서 jira issue 객체를 직렬화하는 방법은 무엇입니까?

불행히도 문제가 발생했습니다. 문제는 해결할 수없는 것 같습니다. 이 아니다 (나는 또한 (원수, 딜, JSON과 같은) 다른 파이썬 직렬화 방법을 시도

_pickle.PicklingError: Can't pickle <class 'jira.resources.PropertyHolder'>: attribute lookup PropertyHolder on jira.resources failed 

하지만 직렬화 그들 모두 실패 : 문제에 대한 덤프()를 호출 할 때 나는 항상 다음과 같은 오류가 딜과 json은 피클에 의존하기 때문에 너무 놀랍습니다.)

파이썬에서 jira 문제를 어떻게 직렬화 할 수 있습니까?

+0

제 생각에 이것은 간단하지가 않습니다. 문제가 포함 된 모든 정보를 로컬에서 사용할 수 있어야합니까? –

+0

문제가 많은 정보가 필요합니다. 나는 사용 된 속성의 수를 간단히 세 었으며 적어도 24 개의 이슈 필드가 사용되었습니다. 때로는 문제의 변경 내역이나 기록이 필요합니다. 나는 이미 관련된 모든 정보를 추출한 문제 객체로 추출하려고 생각 했었지만, 물론 표준 Python 메커니즘에 의존하는 것보다 많은 노력이 필요하다 .- –

+0

글쎄, 문제는 모든'jira.resources.Resource' (주석, 첨부 파일, 버전 ...)은 서버와 별도로 가져 와서 예를 들어 사전으로 변환해야하며, 리소스는 다른 '리소스'등을 포함 할 수도 있습니다. 한 번 비슷한 작업을했지만 약 400 줄의 코드가 필요했습니다. 그것은 단지 하나의 jira에서 다른 jira로 티켓을 복제하기위한 것입니다. 로컬에서 사용할 수있는 정보를 갖는 것이 더 까다 롭습니다. –

답변

0

나는 그것을 작동시켰다.

Changes needed to jira/resources.py 

    Replace: 
    top = type(str('PropertyHolder'), (object,), raw) 
    with 
    top = PropertyHolder(raw) 

    and add at the end 

    class PropertyHolder(object): 

     def __init__(self, raw): 
     __bases__ = raw