Hello community,

here is the log from the commit of package python-passivetotal for 
openSUSE:Factory checked in at 2019-06-18 14:58:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-passivetotal (Old)
 and      /work/SRC/openSUSE:Factory/.python-passivetotal.new.4811 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-passivetotal"

Tue Jun 18 14:58:07 2019 rev:3 rq:710329 version:1.0.31

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-passivetotal/python-passivetotal.changes  
2018-12-24 11:40:54.649477736 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-passivetotal.new.4811/python-passivetotal.changes
        2019-06-18 14:58:17.813332889 +0200
@@ -1,0 +2,12 @@
+Fri Jun 14 14:40:02 UTC 2019 - Sebastian Wagner <[email protected]>
+
+- update to version 1.0.31:
+ - add osint in cli
+ - added response objects
+ - added approved fields for csv
+ - added to_csv function
+ - used response objects in client
+ - removed whois csv implementation
+ - Add host attribute support
+
+-------------------------------------------------------------------

Old:
----
  passivetotal-1.0.30.tar.gz

New:
----
  passivetotal-1.0.31.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-passivetotal.spec ++++++
--- /var/tmp/diff_new_pack.gospDi/_old  2019-06-18 14:58:18.413332545 +0200
+++ /var/tmp/diff_new_pack.gospDi/_new  2019-06-18 14:58:18.421332540 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-passivetotal
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %bcond_without test
 Name:           python-passivetotal
-Version:        1.0.30
+Version:        1.0.31
 Release:        0
 Summary:        Client for the PassiveTotal REST API
 License:        GPL-2.0-only

++++++ passivetotal-1.0.30.tar.gz -> passivetotal-1.0.31.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/passivetotal-1.0.30/PKG-INFO 
new/passivetotal-1.0.31/PKG-INFO
--- old/passivetotal-1.0.30/PKG-INFO    2016-07-18 19:59:28.000000000 +0200
+++ new/passivetotal-1.0.31/PKG-INFO    2019-06-13 17:06:54.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: passivetotal
-Version: 1.0.30
+Version: 1.0.31
 Summary: Client for the PassiveTotal REST API
 Home-page: https://github.com/passivetotal/python_api
 Author: Research Team, passivetotal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/passivetotal-1.0.30/passivetotal/cli/client.py 
new/passivetotal-1.0.31/passivetotal/cli/client.py
--- old/passivetotal-1.0.30/passivetotal/cli/client.py  2016-05-24 
22:38:01.000000000 +0200
+++ new/passivetotal-1.0.31/passivetotal/cli/client.py  2019-06-13 
16:56:57.000000000 +0200
@@ -1,21 +1,21 @@
 #!/usr/bin/env python
-
-__author__ = 'Brandon Dixon (PassiveTotal)'
-__version__ = '1.0.0'
-
 import sys
-
 from argparse import ArgumentParser
 from passivetotal.common.utilities import prune_args
 from passivetotal.common.utilities import to_bool
 from passivetotal.common.utilities import valid_date
-from passivetotal.libs.attributes import AttributeRequest
-from passivetotal.libs.actions import ActionsClient
-from passivetotal.libs.dns import DnsRequest
-from passivetotal.libs.ssl import SslRequest
-from passivetotal.libs.whois import WhoisRequest
+from passivetotal.libs.attributes import AttributeRequest, AttributeResponse
+from passivetotal.libs.actions import ActionsClient, ActionsResponse
+from passivetotal.libs.dns import DnsRequest, DnsResponse
+from passivetotal.libs.ssl import SslRequest, SSLResponse, SSLHistoryResponse
+from passivetotal.libs.whois import WhoisRequest, WhoisResponse
+
+from passivetotal.libs.enrichment import EnrichmentRequest
 from passivetotal.response import Response
 
+__author__ = 'Brandon Dixon (PassiveTotal)'
+__version__ = '1.0.0'
+
 
 def call_dns(args):
     """Abstract call to DNS-based queries."""
@@ -29,9 +29,9 @@
     )
 
     if args.unique:
-        data = client.get_unique_resolutions(**pruned)
+        data = DnsResponse.process(client.get_unique_resolutions(**pruned))
     else:
-        data = client.get_passive_dns(**pruned)
+        data = DnsResponse.process(client.get_passive_dns(**pruned))
 
     return data
 
@@ -41,13 +41,16 @@
     client = AttributeRequest.from_config()
     pruned = prune_args(
         query=args.query,
-        type=args.type
     )
 
     if args.type == 'tracker':
-        data = client.get_host_attribute_trackers(**pruned)
+        data = AttributeResponse.process(
+            client.get_host_attribute_trackers(**pruned)
+        )
     else:
-        data = client.get_host_attribute_components(**pruned)
+        data = AttributeResponse.process(
+            client.get_host_attribute_components(**pruned)
+        )
 
     return data
 
@@ -62,9 +65,13 @@
     )
 
     if not args.field:
-        data = client.get_whois_details(**pruned)
+        data = WhoisResponse.process(
+            client.get_whois_details(**pruned)
+        )
     else:
-        data = client.search_whois_by_field(**pruned)
+        data = WhoisResponse.process(
+            client.search_whois_by_field(**pruned)
+        )
 
     return data
 
@@ -76,7 +83,6 @@
         query=args.query,
         compact_record=args.compact,
         field=args.field,
-        type=args.type
     )
 
     valid_types = ['search', 'history']
@@ -84,17 +90,28 @@
         raise ValueError("Invalid type specified.")
 
     if not args.type:
-        data = client.get_ssl_certificate_details(**pruned)
+        data = SSLResponse.process(
+            {'results': [client.get_ssl_certificate_details(**pruned)]}
+        )
     elif args.type == 'history':
-        data = client.get_ssl_certificate_history(**pruned)
+        data = SSLHistoryResponse.process(
+            client.get_ssl_certificate_history(**pruned)
+        )
     elif args.type == 'search' and args.field:
-        data = client.search_ssl_certificate_by_field(**pruned)
+        data = SSLResponse.process(
+            client.search_ssl_certificate_by_field(**pruned)
+        )
     else:
         raise ValueError("Field argument was missing from the call.")
 
     return data
 
 
+def call_osint(args):
+    client = EnrichmentRequest.from_config()
+    return client.get_osint(query=args.query)
+
+
 def call_actions(args):
     """Abstract call to actions-based queries."""
     client = ActionsClient.from_config()
@@ -109,6 +126,7 @@
         metadata=args.metadata
     )
 
+    data = {}
     if args.tags:
         tag_values = [x.strip() for x in args.tags.split(',')]
         pruned['tags'] = tag_values
@@ -143,7 +161,7 @@
     if args.metadata:
         data = client.get_metadata(**pruned)
 
-    return data
+    return ActionsResponse.process(data)
 
 
 def write_output(results, arguments):
@@ -155,8 +173,7 @@
     """
     if not arguments.format:
         arguments.format = 'json'
-        data = Response.process(results)
-    data = [getattr(data, arguments.format)]
+    data = [getattr(results, arguments.format)]
 
     return data
 
@@ -242,6 +259,13 @@
     action.add_argument('--json', '-j', action="store_true",
                         help="Output as JSON")
 
+    osint = subs.add_parser('osint', help="Query OSINT data")
+    osint.add_argument('--query', '-q', required=True,
+                       help="Query for a domain or IP address")
+    osint.add_argument('--format', choices=['json', 'text', 'csv',
+                                            'stix', 'table', 'xml'],
+                       help="Format of the output from the query")
+
     args, unknown = parser.parse_known_args()
     data = None
 
@@ -256,6 +280,8 @@
             data = call_actions(args)
         elif args.cmd == 'attribute':
             data = call_attribute(args)
+        elif args.cmd == 'osint':
+            data = call_osint(args)
         else:
             parser.print_usage()
             sys.exit(1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/passivetotal-1.0.30/passivetotal/common/const.py 
new/passivetotal-1.0.31/passivetotal/common/const.py
--- old/passivetotal-1.0.30/passivetotal/common/const.py        2016-03-14 
20:17:36.000000000 +0100
+++ new/passivetotal-1.0.31/passivetotal/common/const.py        2019-06-13 
16:56:57.000000000 +0200
@@ -3,7 +3,10 @@
 WHOIS_SECTIONS = ['admin', 'tech', 'registrant']
 WHOIS_SECTION_FIELDS = ['section', 'query', 'city', 'country', 'email', 'name',
                         'organization', 'postalCode', 'state', 'street']
-
+DNS_APPROVED_FIELDS = [
+    "lastSeen", "resolve", "firstSeen", "resolveType", "value", "recordType",
+    "recordHash", "collected",
+]
 SSL_VALID_FIELDS = ["issuerSurname", "subjectOrganizationName",
                     "issuerCountry", "issuerOrganizationUnitName",
                     "fingerprint", "subjectOrganizationUnitName",
@@ -19,6 +22,10 @@
                     "subjectProvince", "issuerSerialNumber",
                     "issuerEmailAddress"]
 
+
+ATTRIBUTE_APPROVED_FIELDS = [
+    "lastSeen", "firstSeen", "attributeType", "hostname", "attributeValue",
+]
 CLASSIFICATION_VALID_VALUES = ['malicious', 'suspicious', 'non-malicious',
                                'unknown']
 ACTIONS = 'actions'
@@ -29,3 +36,5 @@
 ACTIONS_SINKHOLE = 'sinkhole'
 ACTIONS_TAG = 'tags'
 ENRICHMENT = 'enrichment'
+
+TRACKER_VALID_FIELDS = ["51laId", "AboutmeId", "AddThisPubId", 
"AddThisUsername", "AuthorstreamId", "BitbucketcomId", "BitlyId", 
"CheezburgerId", "ClickyId", "ColourloversId", "DiigoId", "DispusId", 
"EngadgetId", "EtsyId", "FacebookId", "FavstarId", "FfffoundId", "FlavorsId", 
"FlickrId", "FoodspottingId", "FreesoundId", "GitHubId", "GithubId", 
"GoogleAnalyticsTrackingId", "GooglePlusId", "GoogleTagManagerId", 
"HubpagesId", "ImgurId", "InstagramId", "KloutId", "LanyrdId", "LastfmId", 
"LibrarythingId", "LinkedInId", "LinkedinId", "MarketinglandcomId", 
"MixpanelId", "MuckrackId", "MyanimelistId", "MyfitnesspalId", "NewRelicId", 
"OptimizelyId", "PandoraId", "PicasaId", "PinkbikeId", "PinterestId", 
"PlancastId", "PlurkId", "PornhubId", "RaptorId", "ReadabilityId", "RedditId", 
"RedtubeId", "SlideshareId", "SmugmugId", "SmuleId", "SoundcloudId", "SoupId", 
"SpeakerdeckId", "SporcleId", "StackoverflowId", "SteamcommunityId", 
"StumbleuponId", "ThesixtyoneId", "TribeId", "TripitId", "TumblrId", 
"TwitpicId", "TwitterId", "UntappdId", "UstreamId", "WattpadId", "WefollowId", 
"WhosAmungUsId", "WordPressId", "Wordpress", "SupportId", "XangaId", "Xfire", 
"SocialId", "XhamsterId", "XvideosId", "YandexMetricaCounterId", 
"YouTubeChannel", "YouTubeId", "YoutubeId"]
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/passivetotal-1.0.30/passivetotal/common/utilities.py 
new/passivetotal-1.0.31/passivetotal/common/utilities.py
--- old/passivetotal-1.0.30/passivetotal/common/utilities.py    2016-07-18 
19:57:07.000000000 +0200
+++ new/passivetotal-1.0.31/passivetotal/common/utilities.py    2019-06-13 
16:56:57.000000000 +0200
@@ -3,6 +3,22 @@
 import json
 import os
 import socket
+import csv
+import sys
+if sys.version_info[0] == 3:
+    from io import StringIO
+else:
+    from io import BytesIO as StringIO
+
+
+def to_csv(headers, data):
+    output = StringIO()
+    writer = csv.writer(output)
+    writer.writerow(headers)
+    for i in data:
+        writer.writerow(i)
+    output.seek(0)
+    return output.read()
 
 
 def is_ip(value):
@@ -30,7 +46,7 @@
     negative = ("no",  "n", "false", "f", "0", "0.0", "", "none", "[]", "{}")
     if str(string).lower() in negative:
         return False
-    raise Exception('Invalid value for boolean conversion: ' + str(value))
+    raise Exception('Invalid value for boolean conversion: ' + str(string))
 
 
 def prune_args(**kwargs):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/passivetotal-1.0.30/passivetotal/libs/actions.py 
new/passivetotal-1.0.31/passivetotal/libs/actions.py
--- old/passivetotal-1.0.30/passivetotal/libs/actions.py        2016-03-14 
20:17:36.000000000 +0100
+++ new/passivetotal-1.0.31/passivetotal/libs/actions.py        2019-06-13 
16:56:57.000000000 +0200
@@ -1,10 +1,7 @@
 #!/usr/bin/env python
 """PassiveTotal API Interface."""
-
-__author__ = 'Brandon Dixon (PassiveTotal)'
-__version__ = '1.0.0'
-
 from passivetotal.api import Client
+from passivetotal.response import Response
 # exceptions
 from passivetotal.common.exceptions import MISSING_FIELD
 from passivetotal.common.exceptions import INVALID_VALUE_TYPE
@@ -19,6 +16,9 @@
 from passivetotal.common.const import CLASSIFICATION_VALID_VALUES
 from passivetotal.common.const import ENRICHMENT
 
+__author__ = 'Brandon Dixon (PassiveTotal)'
+__version__ = '1.0.0'
+
 
 class ActionsClient(Client):
 
@@ -114,3 +114,7 @@
 
     def get_metadata(self, **kwargs):
         return self._get(ENRICHMENT, '', **kwargs)
+
+
+class ActionsResponse(Response):
+    pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/passivetotal-1.0.30/passivetotal/libs/attributes.py 
new/passivetotal-1.0.31/passivetotal/libs/attributes.py
--- old/passivetotal-1.0.30/passivetotal/libs/attributes.py     2016-05-24 
22:21:15.000000000 +0200
+++ new/passivetotal-1.0.31/passivetotal/libs/attributes.py     2019-06-13 
16:56:57.000000000 +0200
@@ -4,7 +4,10 @@
 __author__ = 'Brandon Dixon (PassiveTotal)'
 __version__ = '1.0.0'
 
+from passivetotal.common.const import ATTRIBUTE_APPROVED_FIELDS as 
approved_fields
 from passivetotal.api import Client
+from passivetotal.response import Response
+from passivetotal.common import utilities
 
 
 class AttributeRequest(Client):
@@ -50,3 +53,12 @@
         :return: Dict of matching hosts using a tracking ID
         """
         return self._get('trackers', 'search', **kwargs)
+
+
+class AttributeResponse(Response):
+    @property
+    def csv(self):
+        data = []
+        for record in self._results['results']:
+            data.append([record.get(i) for i in approved_fields])
+        return utilities.to_csv(approved_fields, data)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/passivetotal-1.0.30/passivetotal/libs/dns.py 
new/passivetotal-1.0.31/passivetotal/libs/dns.py
--- old/passivetotal-1.0.30/passivetotal/libs/dns.py    2016-05-24 
22:22:19.000000000 +0200
+++ new/passivetotal-1.0.31/passivetotal/libs/dns.py    2019-06-13 
16:56:57.000000000 +0200
@@ -1,11 +1,13 @@
 #!/usr/bin/env python
 """PassiveTotal API Interface."""
+from passivetotal.api import Client
+from passivetotal.response import Response
+from passivetotal.common import utilities
+from passivetotal.common.const import DNS_APPROVED_FIELDS as approved_fields
 
 __author__ = 'Brandon Dixon (PassiveTotal)'
 __version__ = '1.0.0'
 
-from passivetotal.api import Client
-
 
 class DnsRequest(Client):
 
@@ -51,4 +53,13 @@
         :param str query: Keyword value to search for in the dataset
         :return: List of matching hits based on the keyword
         """
-        return self._get('dns', 'search', 'keyword', **kwargs)
\ No newline at end of file
+        return self._get('dns', 'search', 'keyword', **kwargs)
+
+
+class DnsResponse(Response):
+    @property
+    def csv(self):
+        data = []
+        for record in self._results['results']:
+            data.append([record.get(i) for i in approved_fields])
+        return utilities.to_csv(approved_fields, data)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/passivetotal-1.0.30/passivetotal/libs/host_attributes.py 
new/passivetotal-1.0.31/passivetotal/libs/host_attributes.py
--- old/passivetotal-1.0.30/passivetotal/libs/host_attributes.py        
1970-01-01 01:00:00.000000000 +0100
+++ new/passivetotal-1.0.31/passivetotal/libs/host_attributes.py        
2019-06-13 16:56:57.000000000 +0200
@@ -0,0 +1,67 @@
+#!/usr/bin/env python
+"""PassiveTotal API Interface."""
+
+__author__ = 'Brandon Dixon (PassiveTotal)'
+__version__ = '1.0.0'
+
+from passivetotal.api import Client
+# exceptions
+from passivetotal.common.exceptions import MISSING_FIELD
+from passivetotal.common.exceptions import INVALID_FIELD_TYPE
+# const
+from passivetotal.common.const import TRACKER_VALID_FIELDS
+
+
+class HostAttributeRequest(Client):
+
+    """Client to interface with the host attribute calls from the PassiveTotal 
API."""
+
+    def __init__(self, *args, **kwargs):
+        """Setup the primary client instance."""
+        super(HostAttributeRequest, self).__init__(*args, **kwargs)
+
+    def get_components(self, **kwargs):
+        """Get component data for a value.
+
+        Reference: 
http://api.passivetotal.org/api/docs/#api-Host_Attributes-GetV2HostAttributesComponents
+
+        :param query: Value to enrich
+        :return: Dict of results
+        """
+        return self._get('host-attributes', 'components', **kwargs)
+
+    def get_trackers(self, **kwargs):
+        """Get tracker data for a value.
+
+        Reference: 
http://api.passivetotal.org/api/docs/#api-Host_Attributes-GetV2HostAttributesTrackers
+
+        :param query: Value to enrich
+        :return: Dict of results
+        """
+        return self._get('host-attributes', 'trackers', **kwargs)
+
+    def get_host_pairs(self, **kwargs):
+        """Get host pair data for a value.
+
+        Reference: 
http://api.passivetotal.org/api/docs/#api-Host_Attributes-GetV2HostAttributesPairs
+
+        :param query: Value to enrich
+        :return: Dict of results
+        """
+        return self._get('host-attributes', 'pairs', **kwargs)
+
+    def search_trackers_by_type(self, **kwargs):
+        """Search trackers based on query value and type.
+
+        Reference: 
http://api.passivetotal.org/api/docs/#api-Trackers-GetV2TrackersSearch
+
+        :param str query: Query value to use when making the request for data
+        :param str type: Field to run the query against
+        :return: Tracker matches
+        """
+        if 'type' not in kwargs:
+            raise MISSING_FIELD("Type value is required.")
+        if kwargs['type'] not in WHOIS_VALID_FIELDS:
+            raise INVALID_FIELD_TYPE("Field must be one of the following: %s"
+                                     % ', '.join(TRACKER_VALID_FIELDS))
+        return self._get('trackers', 'search', **kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/passivetotal-1.0.30/passivetotal/libs/ssl.py 
new/passivetotal-1.0.31/passivetotal/libs/ssl.py
--- old/passivetotal-1.0.30/passivetotal/libs/ssl.py    2016-05-24 
22:22:42.000000000 +0200
+++ new/passivetotal-1.0.31/passivetotal/libs/ssl.py    2019-06-13 
16:56:57.000000000 +0200
@@ -1,15 +1,15 @@
 #!/usr/bin/env python
 """PassiveTotal API Interface."""
-
-__author__ = 'Brandon Dixon (PassiveTotal)'
-__version__ = '1.0.0'
-
+from passivetotal.common import utilities
 from passivetotal.api import Client
 # exceptions
 from passivetotal.common.exceptions import MISSING_FIELD
 from passivetotal.common.exceptions import INVALID_FIELD_TYPE
 # const
+from passivetotal.response import Response
 from passivetotal.common.const import SSL_VALID_FIELDS
+__author__ = 'Brandon Dixon (PassiveTotal)'
+__version__ = '1.0.0'
 
 
 class SslRequest(Client):
@@ -71,3 +71,19 @@
         :return: List of matching hits based on the keyword
         """
         return self._get('ssl-certificate', 'search', 'keyword', **kwargs)
+
+
+class SSLHistoryResponse(Response):
+    pass
+
+
+class SSLResponse(Response):
+    @property
+    def csv(self):
+        """Output data as CSV.
+
+        :return: String of formatted data
+        """
+        for result in self._results.get('results', []):
+            data = [result.get(detail, '') for detail in SSL_VALID_FIELDS]
+        return utilities.to_csv(SSL_VALID_FIELDS, [data])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/passivetotal-1.0.30/passivetotal/libs/whois.py 
new/passivetotal-1.0.31/passivetotal/libs/whois.py
--- old/passivetotal-1.0.30/passivetotal/libs/whois.py  2016-05-24 
22:23:57.000000000 +0200
+++ new/passivetotal-1.0.31/passivetotal/libs/whois.py  2019-06-13 
16:56:57.000000000 +0200
@@ -1,15 +1,17 @@
 #!/usr/bin/env python
-"""PassiveTotal API Interface."""
-
-__author__ = 'Brandon Dixon (PassiveTotal)'
-__version__ = '1.0.0'
-
+from passivetotal.common import utilities
 from passivetotal.api import Client
 # exceptions
 from passivetotal.common.exceptions import MISSING_FIELD
 from passivetotal.common.exceptions import INVALID_FIELD_TYPE
 # const
 from passivetotal.common.const import WHOIS_VALID_FIELDS
+from passivetotal.response import Response
+"""PassiveTotal API Interface."""
+
+__author__ = 'Brandon Dixon (PassiveTotal)'
+__version__ = '1.0.0'
+
 
 
 class WhoisRequest(Client):
@@ -58,3 +60,6 @@
         """
         return self._get('whois', 'search', 'keyword', **kwargs)
 
+
+class WhoisResponse(Response):
+    pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/passivetotal-1.0.30/passivetotal.egg-info/PKG-INFO 
new/passivetotal-1.0.31/passivetotal.egg-info/PKG-INFO
--- old/passivetotal-1.0.30/passivetotal.egg-info/PKG-INFO      2016-07-18 
19:59:28.000000000 +0200
+++ new/passivetotal-1.0.31/passivetotal.egg-info/PKG-INFO      2019-06-13 
17:06:53.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: passivetotal
-Version: 1.0.30
+Version: 1.0.31
 Summary: Client for the PassiveTotal REST API
 Home-page: https://github.com/passivetotal/python_api
 Author: Research Team, passivetotal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/passivetotal-1.0.30/passivetotal.egg-info/SOURCES.txt 
new/passivetotal-1.0.31/passivetotal.egg-info/SOURCES.txt
--- old/passivetotal-1.0.30/passivetotal.egg-info/SOURCES.txt   2016-07-18 
19:59:28.000000000 +0200
+++ new/passivetotal-1.0.31/passivetotal.egg-info/SOURCES.txt   2019-06-13 
17:06:53.000000000 +0200
@@ -9,7 +9,6 @@
 passivetotal.egg-info/dependency_links.txt
 passivetotal.egg-info/entry_points.txt
 passivetotal.egg-info/not-zip-safe
-passivetotal.egg-info/pbr.json
 passivetotal.egg-info/requires.txt
 passivetotal.egg-info/top_level.txt
 passivetotal/cli/__init__.py
@@ -26,6 +25,7 @@
 passivetotal/libs/attributes.py
 passivetotal/libs/dns.py
 passivetotal/libs/enrichment.py
+passivetotal/libs/host_attributes.py
 passivetotal/libs/intelligence.py
 passivetotal/libs/ssl.py
 passivetotal/libs/whois.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/passivetotal-1.0.30/passivetotal.egg-info/pbr.json 
new/passivetotal-1.0.31/passivetotal.egg-info/pbr.json
--- old/passivetotal-1.0.30/passivetotal.egg-info/pbr.json      2016-07-18 
19:59:28.000000000 +0200
+++ new/passivetotal-1.0.31/passivetotal.egg-info/pbr.json      1970-01-01 
01:00:00.000000000 +0100
@@ -1 +0,0 @@
-{"is_release": false, "git_version": "1975422"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/passivetotal-1.0.30/setup.cfg 
new/passivetotal-1.0.31/setup.cfg
--- old/passivetotal-1.0.30/setup.cfg   2016-07-18 19:59:28.000000000 +0200
+++ new/passivetotal-1.0.31/setup.cfg   2019-06-13 17:06:54.000000000 +0200
@@ -1,5 +1,4 @@
 [egg_info]
 tag_build = 
 tag_date = 0
-tag_svn_revision = 0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/passivetotal-1.0.30/setup.py 
new/passivetotal-1.0.31/setup.py
--- old/passivetotal-1.0.30/setup.py    2016-07-18 19:59:13.000000000 +0200
+++ new/passivetotal-1.0.31/setup.py    2019-06-13 16:56:57.000000000 +0200
@@ -8,7 +8,7 @@
 
 setup(
     name='passivetotal',
-    version='1.0.30',
+    version='1.0.31',
     description='Client for the PassiveTotal REST API',
     url="https://github.com/passivetotal/python_api";,
     author="Research Team, passivetotal",


Reply via email to