suitesparse 5.7.2 (redux)

Checklist

[x] Used a fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

This picks up the fixed patches from @minrk in #61, together with the version bump from #63.
Closes #60
Closes #61
Closes #62
Closes #63

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

Failed to even lint the recipe, probably because of a conda-smithy bug :cry:. This likely indicates a problem in your meta.yaml, though. To get a traceback to help figure out what's going on, install conda-smithy and run conda smithy recipe-lint . from the recipe directory.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe:

License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

@conda-forge-admin, please rerender

The two extant patches have been upstreamed by @minrk in DrTimothyAldenDavis/SuiteSparse#7 & DrTimothyAldenDavis/SuiteSparse#8, so I removed them outright.

@conda-forge/suitesparse
This is green and should allow to close all open PRs. Next step: windows builds. ;-)

PS. Link to the discussion about the conda-smithy warning regarding license identifiers:

Thanks @h-vetinari. Not having the patches should make future automatic updates easier!

@grlee77: Thanks @h-vetinari.

Happy to help. I want to fix the suboptimal cvxopt build (currently building and statically linking suitesparse for windows within that recipe), so it made sense to start here. In turn, this also means that cvxopt already knows how to build suitesparse for windows, so I'm hopeful I can leverage that (somehow) into a windows build here (cf. #51).

Not having the patches should make future automatic updates easier!

All credit for that belongs to @minrk! :)


LNbits - logo redesign proposal

Hello,
I use and love LNbits, so I wanted to contribute. I have redesigned its logo to move away from the "Free open source" look and make it seem like a professional commercial project.

Downloadable zip with files and guidelines:
https://drive.google.com/drive/folders/1Z53G83ROzVjscp_igLE9V4mOlDinkhOd?usp=sharing

My contact
https://twitter.com/AndrejCibik
Tips
<EMAIL_ADDRESS>

@arcbtc @blackcoffeexbt

Ooooo, didnt see this. lovely looking logos. I think we are stuck with one we have for now, but great design!


[core-tracing] Updating surface to be clean of constructs that won't work in TS 3.1

Some of the types for the core-tracing API were just being re-exported from opentelemetry/api (directly, not copied). @opentelemetry/api uses some constructs that aren't available in TypeScript 3.1, which causes problems for consumers of core-tracing.
This PR fixes that by duplicating the types, which should cut off any compiling/importing of the opentelemetry types by consumers of core-tracing.

/azp run js - app-configuration - tests

AppConfig live tests passed (had to re-run one leg).
Core CI tests passed but the analyze step failed because the copied models from opentelemetry/api had badly formatted comments. Otherwise, everything appears good.


add stable numerical ID for components

Please add a version-stable numerical ID to components. This helps keeping track over different versions and is safer than string-based comparisons.
This issue was carried over from https://access.rexs.info/issues/206

Please add a version-stable numericId, similar to what we have on the attributes


Create network automatically if not created

This creates the network automatically if no network param passed

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: mkumatag
To complete the pull request process, please assign
You can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@mkumatag: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

pull-kubetest2-plugins-terraform-validate
3859c3d616a7ecc91732fdd6ba51707df0fc7d30
link
/test pull-kubetest2-plugins-terraform-validate

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test pull-kubetest2-plugins-terraform-validate

@mkumatag: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

pull-kubetest2-plugins-terraform-validate
3859c3d616a7ecc91732fdd6ba51707df0fc7d30
link
/test pull-kubetest2-plugins-terraform-validate

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test pull-kubetest2-plugins-terraform-validate

@mkumatag: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

pull-kubetest2-plugins-terraform-validate
3859c3d616a7ecc91732fdd6ba51707df0fc7d30
link
/test pull-kubetest2-plugins-terraform-validate

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


⚠ Bofrost.lu has degraded performance

In 8706ec1, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1150 ms

Resolved: Bofrost.lu performance has improved in e393750.


Improved map zoom scaling

Signatures that are placed on the map should not be scaled with the map, otherwise they will be heavily shifted or cover entire areas, making an overview impossible.
(Feedback from Zivilschutz Bielersee-Südwest)

Duplicate


Add branching sections to the menu

We will pick a parent by default:

if there are no previous branching sections, pick the previous section as parent
if there are, pick the same parent as the previous

We will also allow clicking on \ from "Foo Bar" to change the parent.

The big question is what to do with the existing branch sections button:

Keep it as is
Making it so it uses the heuristic above and people can use the \ from "Foo Bar" link to change it

Finally, we will add an explicit x Clear at the top of the branching section menu (instead of having folks click the currently checked one to disable).

There is also a "bug" when mixing zen mode with branching sections. Zen mode merges all code cells together, making it impossible to know which code belongs to a branching section and which does not.
I think we should provide very thin horizontal lines as session separators, potentially with an icon identifying the section. The goal is to keep it as unobtrusive as possible.


Some fixes

serde_derive::Serialize imports start to conflict when a user of this crate has serde with the derive feature enabled. Just use derive ourselves, that doesn't do harm.
Second, I had logbook entries without entity_id, so I made that optional.
Cheers, thanks for the crate!
I might come back and throw a websocket API at it some day, but https://github.com/seanmonstar/reqwest/issues/864 seems to be in the way for that :-)

FWIW, I just built this with it: https://gitlab.com/rubdos/hasli/
I have some pending code that infers whether someone is in the shower, and I intent to make it a big bigger than that.

LGTM and thanks for the fixes. I wrote this library for a project that I am currently working on so there may be some API churn. Feel free file issues or submit fixes in the future.

I wrote this library for a project that I am currently working on so there may be some API churn.

I live by API churn! I might be rewriting my project as a real Home Assistant integration, because I'd need to expose service calls too, so I don't know whether I'll keep using your work here. If I do, I'll certainly file PRs and issues :-)

Looks like the tests need to be updated as well. The Github action is reporting:
error[E0432]: unresolved import `serde_derive`
 --> tests/state_enum.rs:5:5
  |
5 | use serde_derive::Deserialize;
  |     ^^^^^^^^^^^^ use of undeclared crate or module `serde_derive`

error: cannot determine resolution for the derive macro `Deserialize`
 --> tests/state_enum.rs:7:10
  |
7 | #[derive(Deserialize, Debug)]
  |          ^^^^^^^^^^^
  |
  = note: import resolution is stuck, try simplifying macro imports

error: cannot find attribute `serde` in this scope
 --> tests/state_enum.rs:9:7
  |
9 |     #[serde(deserialize_with = "deserialize_state_enum")]
  |       ^^^^^
  |
  = note: `serde` is in scope, but it is a crate, not an attribute

error: cannot determine resolution for the derive macro `Deserialize`
  --> tests/state_enum.rs:13:10
   |
13 | #[derive(Deserialize, Debug)]
   |          ^^^^^^^^^^^
   |
   = note: import resolution is stuck, try simplifying macro imports

error: cannot find attribute `serde` in this scope
  --> tests/state_enum.rs:15:7
   |
15 |     #[serde(deserialize_with = "deserialize_optional_state_enum")]
   |       ^^^^^
   |
   = note: `serde` is in scope, but it is a crate, not an attribute

warning: unused imports: `deserialize_optional_state_enum`, `deserialize_state_enum`
 --> tests/state_enum.rs:2:19

...

Fixed the tests! :-)

e92adf5 removes some unnecessary allocations that I saw happening in the tests. Not very relevant, but thought I'd fix that while I was at it.


Add a setting to activate read-repairs

Also set compaction options accordingly when doing it. Read repairs will write in the past which means that we need to set these correctly:

tombstone_threshold (something high, like 80%)
tombstone_compaction_interval (something higher than TTL + gc_grace_period)

This should probably only be set once we've fixed issues on Cassandra with overlapping fully expired sstables.

These is a patch for overlapping sstables available on https://issues.apache.org/jira/browse/CASSANDRA-13418


Feat/external secrets

New Features
Support for External Secrets and Cluster Secret Store
OpenId credentials in fence values yaml
Improvements
Fence-config has been changed to configMap kind, instead of secret in order to inject Openid credentials from external secrets. Fence deployment args have been updated accordingly.
Deployment changes

Superseded by: https://github.com/uc-cdis/gen3-helm/pull/138


Fixes 4307: add use_latest parameter to template

Summary

Adds the use_latest parameter to templates
Adds validation on template update
Adds validation on template create and update to prevent a date being set when use_latest is true

Testing steps

Create a template with the use_latest parameter set to true
If you create with a date specified, and the parameter set to true, there should be a validation error.
Fetching that template, you should see the template set to true
Update the template to change the use_latest value should also work.
Validation now runs on template update, so you should not be able to update a template with a blank name, invalid arch, etc.

Checklist

[ ] Tested with snapshotting feature disabled and pulp server URL not configured if appropriate

https://issues.redhat.com/browse/HMS-4307

i think because of this, when i fully update (PUT) a template to change use_latest from false to true and i don't provide a date, it sets the date to the current time. seeing the same with partial update (PATCH). i think on updating a template from use_latest=false to true, maybe we should make sure the date is set back to zero here too?

when creating a template with use_latest=true and the date set to an empty string, i get an error binding params i think because of the date type.
{
    "status": 400,
    "title": "Error binding params",
    "detail": "code=400, message=parsing time \"\" as \"2006-01-02T15:04:05Z07:00\": cannot parse \"\" as \"2006\", internal=parsing time \"\" as \"2006-01-02T15:04:05Z07:00\": cannot parse \"\" as \"2006\""
}

removing the date from the request or setting the date to zero works: "date": "0001-01-01T00:00:00Z". i'm not sure how to get around this without filling it with that zero date if it's set to an empty string. what do you think?

i think because of this, when i fully update (PUT) a template to change use_latest from false to true and i don't provide a date, it sets the date to the current time. seeing the same with partial update (PATCH). i think on updating a template from use_latest=false to true, maybe we should make sure the date is set back to zero here too?

Good catch! I'll work on updating that

removing the date from the request or setting the date to zero works: "date": "0001-01-01T00:00:00Z". i'm not sure how to get around this without filling it with that zero date if it's set to an empty string. what do you think?

If you set the date to empty string, I think I would expect an error. In this case null is really the zero value, right? Or not specifying date at all.

removing the date from the request or setting the date to zero works: "date": "0001-01-01T00:00:00Z". i'm not sure how to get around this without filling it with that zero date if it's set to an empty string. what do you think?

If you set the date to empty string, I think I would expect an error. In this case null is really the zero value, right? Or not specifying date at all.

agreed! i was thinking about whether the UI would ever send a request with an empty string, but we could just handle that there so that never happens

Hi
I created a repo, then a template:
In [3]: template_dict = dict(name="api-template el8 ",repository_uuids=['1f3f9318-7758-466f-8fe0-49eb7291143d'],description="my api template",arch="x86_64",version="8",use_latest=True)

In [5]: app.content_sources.rest_client.templates_api.create_template(template_dict)
2024-07-19 11:26:03.576 [    INFO] [iqe.base.rest_client] REST: METHOD=POST, request_id=d6117854-d052-4071-a389-6f22de1e6cd2, params=[]
Out[5]:
{'arch': 'x86_64',
 'created_at': '2024-07-19T10:26:03.527277602Z',
 'created_by': 'ephemeral-user',
 'date': '0001-01-01T00:00:00Z',
 'description': 'my api template',
 'last_updated_by': 'ephemeral-user',
 'name': 'api-template el8 ',
 'org_id': '3340851',
 'repository_uuids': ['1f3f9318-7758-466f-8fe0-49eb7291143d'],
 'rhsm_environment_id': 'd2269a8c7bee4bbb86c4b60572cd2c54',
 'updated_at': '2024-07-19T10:26:03.527277602Z',
 'use_latest': True,
 'uuid': 'd2269a8c-7bee-4bbb-86c4-b60572cd2c54',
 'version': '8'}

In [6]: app.content_sources.rest_client.templates_api.get_template('d2269a8c-7bee-4bbb-86c4-b60572cd2c54')
2024-07-19 11:29:02.461 [    INFO] [iqe.base.rest_client] REST: METHOD=GET, request_id=<>, params=[]
Out[6]:
{'arch': 'x86_64',
 'created_at': '2024-07-19T10:26:03.527277Z',
 'created_by': 'ephemeral-user',
 'date': '0001-01-01T00:00:00Z',
 'description': 'my api template',
 'last_updated_by': 'ephemeral-user',
 'name': 'api-template el8 ',
 'org_id': '3340851',
 'repository_uuids': ['1f3f9318-7758-466f-8fe0-49eb7291143d'],
 'rhsm_environment_id': 'd2269a8c7bee4bbb86c4b60572cd2c54',
 'updated_at': '2024-07-19T10:26:03.527277Z',
 'use_latest': True,
 'uuid': 'd2269a8c-7bee-4bbb-86c4-b60572cd2c54',
 'version': '8'}

Notice date format above, in the UI it shows as "31 Dec 0000"
If I open to edit the template in the UI, then the date is shown as "0001-01-01"
I presume that will be fixed in the frontend PR to follow.
Try update the use_latest to False:
In [7]: app.content_sources.rest_client.templates_api.partial_update_template('d2269a8c-7bee-4bbb-86c4-b60572cd2c54', {"use_latest":False})
2024-07-19 11:31:57.481 [    INFO] [iqe.base.rest_client] REST: METHOD=PATCH, request_id=<>, params=[]
Out[7]:
{'arch': 'x86_64',
 'created_at': '2024-07-19T10:26:03.527277Z',
 'created_by': 'ephemeral-user',
 'date': '0001-01-01T00:00:00Z',
 'description': 'my api template',
 'last_updated_by': 'ephemeral-user',
 'name': 'api-template el8 ',
 'org_id': '3340851',
 'repository_uuids': ['1f3f9318-7758-466f-8fe0-49eb7291143d'],
 'rhsm_environment_id': 'd2269a8c7bee4bbb86c4b60572cd2c54',
 'updated_at': '2024-07-19T10:31:57.43104Z',
 'use_latest': False,
 'uuid': 'd2269a8c-7bee-4bbb-86c4-b60572cd2c54',
 'version': '8'}

Try change name:
In [8]: app.content_sources.rest_client.templates_api.partial_update_template('d2269a8c-7bee-4bbb-86c4-b60572cd2c54', {"name":''})
2024-07-19 11:32:26.481 [    INFO] [iqe.base.rest_client] REST: METHOD=PATCH, request_id=<>, params=[]
<snip>
HTTP response body: {"errors":[{"status":400,"title":"Error updating template","detail":"Name cannot be blank."}]}

lgtm


"reveal in explorer" feature

VSCode Version:
OS Version:

Steps to Reproduce:
1.Open visual studio code as another user that is administrotor
2.rightclick on file reveal in explorer.  Explorer does not shows off.

Does this issue occur when all extensions are disabled?: Yes/No

What VS Code version and OS?
/needsMoreInfo


Support print on web

When i run 'flutter build apk'  it run success but if i run on web 'flutter run -d chrome' it do not connect to printer

This issue is related to Socket from dart.io, not compatible on Flutter Web.
Related to https://stackoverflow.com/questions/60266060/how-can-i-use-sockets-with-flutter-web :
You can use HtmlWebSocketChannel from the web_socket_channel package as documented here. I have used this package and can confirm it works well in flutter web.
@andrey-ushakov, from your view, the socket used by POS is compatible with web socket implementation ?

If it connected, is it able to print on web??


CASMINST-6776 Move api docs generator to docs-csm repo

Description
Currently, we generate API docs during CSM build. We need an option to generate API docs independently. CSM build should only invoke script located in docs-csm.
Checklist

[x] If I added any command snippets, the steps they belong to follow the prompt conventions (see [example][1]).
[x] If I added a new directory, I also updated .github/CODEOWNERS with the corresponding team in [Cray-HPE][2].
[x] My commits or Pull-Request Title contain my JIRA information, or I do not have a JIRA.

/backport release/1.5

/backport release/1.4


better handling of unlisted videos

have a new "uploaded but unlisted" state
alternately: public boolean as its own edit state column, which is modifyable via #170

some discussion of details we ironed out:

Backend implementation should be a modifiable public column
This should be an advanced submission toggle in the editor
Sheet UI should be the "upload progress" column, where DONE is replaced by UNLISTED if public = false
Playlist manager should never add non-public videos to playlists


Add TEAL 4 keywords (AVM v0.9)

Never looked into syntax rules for vim before, so I just followed the existing work.

Thank you! I have noticed a couple of small issues about highlighting of integer/bytes and comments:

However, I think this is already a big improvement and if you agree I'd suggest to merge this now and then think about bug fixes later on (also, I don't really know vim syntax either :))

All small issues fixed here f84cbc9.
Thank you for submitting this! :)


Minor change to 1.22 patch description

This change is needed for patch automation reasons
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

I'm killing the bot


Homepage stats - total supply:  add the token symbol in parentheses for BYOT gardens

Where and which token symbol?
Where - I imagine at the right of the number or below, ok?
Which - the token brought? that is also the one that appears at the top left, (or at the left of Common Pool).
Just to make sure we are clear, in this org for example
https://gardens-rinkeby.1hive.org/#/garden/0xf23d9130a6b41c06a0d4f175da54a1ca319f5681
MTK2 would be what would go in between parenthesis at the right or below the number below total supply.
Just landing into this idea of byot, I would have expected the one showing at the top left was the one native from the garden... maybe it will sink in better with time

closed by https://github.com/1Hive/gardens-ui/pull/674


Swagger / OpenAPI input

Reason/Context
Please try answering few of those questions

Why we need this improvement?

Swagger / OpenAPI is very similar to AsyncAPI and also builds upon JSON Schema style model definitions

How will this change help?

Enable more types of conversions and a more complete toolchain for models of all types of sources.

Description
Please try answering few of those questions

What changes have to be introduced?

Probably the same that was needed to support AsyncAPI on top of JSON Schema

Will this be a breaking change?

Nope

How could it be implemented/designed?

Probably the same way that AsyncAPI was

Just leaving this for later:

OpenAPI 3.0.3 - superset of draft-wright-json-schema-00
OpenAPI 3.1 - superset of 2020-12 draft
Swagger 2.0 - superset of JSON Schema Specification Draft 4

@voxpelli do you by any chance have any Swagger/OpenAPI documents you can share, that I can test with? 🙂
Also, do you mind if I ping you for giving a review once the features are complete?

@jonaslagoni Unfortunately nothing public, but I do remember the file I was looking at this time as being a Swagger 2.0 file, so #378 would solve it.
Please ping me when you want a review!

@voxpelli the PR is ready from our side to be merged, if you want to give your review, now is the time 😄 Let me know if you don't have time to review it, so we don't wait in vain 👍
I suggest to download the branch and adapt the example to fit your need - https://github.com/jonaslagoni/generator-model-sdk/tree/feature/swagger_new/examples/swagger2.0-from-object

Still relevant :)

Still relevant :)

still valid? @jonaslagoni @voxpelli

I guess this still holds true:

still need to support OpenAPI 3.1

But maybe better to add that as a new issue? To make it clearer?

Lets keep this closed and focus on https://github.com/asyncapi/modelina/issues/1749 🙂


How to get access to query object that has been passed through socketCluster.connect(options)

I use socketCluster.connect(options) from client side. In objects I can send some data using [query] property which has to be a key,value object.
I would like to send some data through this so that I can access them at the handshake.
I couldn't find a way to do that from the server.

@mkgn Inside the MIDDLEWARE_HANDSHAKE middleware, the query string will be part of the URL req.url or on a socket, you can use socket.request.url you can use the native Node.js module url.parse(req.url, true).


New payment chanel constants

See commit.
See thread - http://forum.nette.org/cs/7673-maly-wrapper-pro-gopay-api?p=2#p154670

Thanks. I will merge it after #17.

I had to rebase to current master. Merged. Thanks.
https://github.com/Markette/Gopay/commit/d41c6cd7aca20cfc4e22019ab827b7d8fcb80601


Improve usability of unmanaged namespaces

This change makes it a nondestructive operation to switch a namespace
from managed to unmanaged and back, by not deleting the HC or anchors
while a namespace is unmanaged. It also fixes one serious bug
(namespaces could not be changed to roots because the unnamed namespace
didn't match the regex) and adds a lot more details in the error
messages. Finally, it allows users to fix broken hierarchies by removing
a formerly-managed parent.
I also changed the terminology from "excluded" to "unmanaged"
throughout.
Testing: This is hard to test automatically since it requires constant
redeployments of HNC. So I did extensive manual testing instead:

Try to arrange hierarchies with unmanaged namespace, both excluded
(e.g hnc-system) and ones that don't match the regex. Verify that the
error messages clearly indicate the correct problem.
Create a legal hierarchy and then break it by changing the regex.
Verify that I can fix it without restarting HNC.
Create a legal hierarchy, break it with the regex, and then restore it
with the regex. Verify that the original hierarchy comes back.
Verify that anchors and hierarchyconfigs lose their finalizers when
their namespaces become unmanaged, and get them back if they become
managed again.

/assign @rjbez17
cc @santinoncs

LGTM


Enhancement Request: User / password secure handling

Description
Ideally there should be a prompt or method to read a file for user/password handling. Having this in my bash history isn't ideal.
Crude hackish workaround
./butler jobs export --server https://udajenkins:8444 --username mtdeguzis --password $(read -s password && echo $password)

I agree the proposed solution by @icereed in #6
@mtdeguzis to do the way you want you can use https://www.passwordstore.org/  then $(pass your-secret-name)


Fix duplicate toasts

Description
Fixes duplicate toasts by passing an id to Chakra's toast function.
Fixes #9
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)

Thanks for the awesome pr @arshxyz 🙌


CA-164 - Add S3 server access logging feature to ephemeral spark example

The pre-existing bucket seems more natural to me based on customer experience (sample size: 1).

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Enhancement request: direct entry of latitude and longitude values when setting location

Those who already know their exact GPS coordinates are still forced to use the map in the settings window to set their location, which may not be as precise as entering known-accurate latitude and longitude values. Please add the ability to directly enter these values if they're known.

Are you talking about your My ADS-B stats page on www.flightaware.com? If so, both of your requests are already possible.

@eric1tran yes. The only selection I see when I click on the gear icon then click manually enter location is to use the map. I find nothing that lets me manually enter my latitude and longitude.

You can already do this:

Aha! I guess I didn't scroll far enough down in the window to see that at the bottom.  (Sorry.)


fix get_apkid and new_zip

based on the integration with apkInspector https://github.com/androguard/androguard/pull/956, I adjusted the get_apkid and the creation of the new zip.

For future reference, I'm commenting after looking at this.  Looks like it just changes zipfile.ZipFile.open() to ZipEntry.parse()