diff options
Diffstat (limited to 'fatcat/api_client.py')
| -rw-r--r-- | fatcat/api_client.py | 25 | 
1 files changed, 25 insertions, 0 deletions
diff --git a/fatcat/api_client.py b/fatcat/api_client.py index 291b7a1b..f2fd6a1d 100644 --- a/fatcat/api_client.py +++ b/fatcat/api_client.py @@ -144,6 +144,31 @@ class FatCatApiClient:          assert rv.status_code == 200          release_id = rv.json()['id'] +    def import_issn_file(self, json_file, create_containers=False, batchsize=100): +        eg = self.new_editgroup() +        i = 0 +        with open(json_file, 'r') as file: +            for line in file: +                if i % batchsize == 0: +                    sys.stdout.write('\n{}: '.format(i)) +                if (i+1) % 20 == 0: +                    sys.stdout.write('.') +                i = i + 1 +                obj = json.loads(line) +                if not ("author" in obj and "title" in obj): +                    continue +                try: +                    self.import_crossref_dict(obj, editgroup=eg, +                        create_containers=create_containers) +                except Exception as e: +                    print("ERROR: {}".format(e)) +                if i % batchsize == 0: +                    self.accept_editgroup(eg) +                    eg = self.new_editgroup() +        if i % batchsize != 0: +            self.accept_editgroup(eg) +        print("done!") +      def health(self):          rv = self.get("/health")          assert rv.status_code == 200  | 
