From b7fbb337d60680568d115591ed9758df67e626b5 Mon Sep 17 00:00:00 2001 From: whiskymeow <1051950160@qq.com> Date: Tue, 25 Feb 2025 10:37:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=AD=E8=8B=B1=E6=96=87?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E5=9B=BE=E7=89=87=E4=B8=8D=E4=B8=80=E8=87=B4?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: whiskymeow <1051950160@qq.com> --- docs/en/api_reference/error.md | 16 +- docs/en/api_reference/upload_api.md | 6 +- .../en/basic_tutorial/third-party_platform.md | 18 +-- docs/en/basic_tutorial/upload.md | 4 +- .../figures/cacert_download.png | Bin 0 -> 78857 bytes .../figures/certificate download 1.png | Bin 8571 -> 0 bytes .../figures/certificate download 2.png | Bin 11139 -> 0 bytes .../figures/certificate download 3.png | Bin 16283 -> 0 bytes .../figures/certificate_download_1.png | Bin 8571 -> 14733 bytes .../figures/certificate_download_2.png | Bin 11139 -> 15225 bytes .../en/developer_tutorial/trouble_shooting.md | 10 +- docs/en/install.md | 18 +-- docs/en/overview.md | 2 +- docs/en/quick_start.md | 4 +- docs/en/release_note.md | 144 +++++++++++++++++- 15 files changed, 182 insertions(+), 40 deletions(-) create mode 100644 docs/en/developer_tutorial/figures/cacert_download.png delete mode 100644 docs/en/developer_tutorial/figures/certificate download 1.png delete mode 100644 docs/en/developer_tutorial/figures/certificate download 2.png delete mode 100644 docs/en/developer_tutorial/figures/certificate download 3.png diff --git a/docs/en/api_reference/error.md b/docs/en/api_reference/error.md index 4ad74bd..2e702e4 100644 --- a/docs/en/api_reference/error.md +++ b/docs/en/api_reference/error.md @@ -1,26 +1,26 @@ # Public Errors -## openmind_hub.utils.OMValidationError +## openmind_hub.OMValidationError Parameter validation failed. -## openmind_hub.utils.EntryNotFoundError +## openmind_hub.EntryNotFoundError The file does not exist. -## openmind_hub.utils.RepositoryNotFoundError +## openmind_hub.RepositoryNotFoundError The repository does not exist. -## openmind_hub.utils.RevisionNotFoundError +## openmind_hub.RevisionNotFoundError The branch or committed version does not exist. -## openmind_hub.utils.GatedRepoError +## openmind_hub.GatedRepoError Access to the repository is restricted. -## openmind_hub.utils.LocalEntryNotFoundError +## openmind_hub.LocalEntryNotFoundError The local file does not exist. @@ -28,6 +28,6 @@ The local file does not exist. Access to the trustlist is restricted. -## openmind_hub.utils.OmHubHTTPError +## openmind_hub.OmHubHTTPError -Parent class of all HTTP exceptions in the openMind Hub Client. +Parent class of all HTTP exceptions in openMind Hub Client. diff --git a/docs/en/api_reference/upload_api.md b/docs/en/api_reference/upload_api.md index f8e14af..3d53a50 100644 --- a/docs/en/api_reference/upload_api.md +++ b/docs/en/api_reference/upload_api.md @@ -22,7 +22,7 @@ upload_file( + **path_in_repo** (`str`): path for uploading files to the repository. + **repo_id** (`str`): target repository, in the format of *username*/*repository name*. For the username and repository name, letters, digits, dots (.), underscores (_), and hyphens (-) are allowed. + **token** (`str`, *optional*): access token that has the write permission on the target repository. This parameter is required when this method is used separately. -+ **revision** (`str`, *optional*): branch to be uploaded. Letters, digits, underscores (_), and hyphens (-) are allowed. The default value is **main**. ++ **revision** (`str`, *optional*): branch to be uploaded. Letters, digits, underscores (_), and hyphens (-) are allowed. The default value is **None**. + **commit_message** (`str`, *optional*): commit message of the upload. The default value is **Upload {path_in_repo} with openMind hub**. + **commit_description** (`str`, *optional*): description of this commit. + **kwargs**: required only for compatibility with third-party components. @@ -54,7 +54,7 @@ upload_folder( + **commit_message** (`str`, *optional*): commit message of the upload. The default message is **Upload folder using openMind hub**. + **commit_description** (`str`, *optional*): description of this commit. + **token** (`str`, *optional*): access token that has the write permission on the target repository. This parameter is required when this method is used separately. -+ **revision** (`str`, *optional*): branch to be uploaded. Letters, digits, underscores (_), and hyphens (-) are allowed. The default value is **main**. ++ **revision** (`str`, *optional*): branch to be uploaded. Letters, digits, underscores (_), and hyphens (-) are allowed. The default value is **None**. + **allow_patterns** (`List[str]` or `str`, *optional*): only certain types of files can be uploaded. For example, `allow_patterns=["*.bin, *.py"]` indicates that only .bin and .py files can be uploaded. + **ignore_patterns** (`List[str]` or `str`, *optional*): Ignore the upload of a certain type of files. For example, `ignore_patterns="*.log"` indicates that all log files are ignored. + **num_threads** (`int`, *optional*): number of threads used for uploading. The default value is **5**. @@ -88,6 +88,6 @@ create_commit( + **commit_message** (`str`): commit message of the upload. + **commit_description** (`str`, *optional*): description of this commit. + **token** (`str`, *optional*): access token that has the write permission on the target repository. This parameter is required when this method is used separately. -+ **revision** (`str`, *optional*): branch to be uploaded. Letters, digits, underscores (_), and hyphens (-) are allowed. The default value is **main**. ++ **revision** (`str`, *optional*): branch to be uploaded. Letters, digits, underscores (_), and hyphens (-) are allowed. The default value is **None**. + **num_threads** (`int`, *optional*): number of threads used for uploading. The default value is **5**. + **kwargs**: required only for compatibility with third-party components. diff --git a/docs/en/basic_tutorial/third-party_platform.md b/docs/en/basic_tutorial/third-party_platform.md index 0a887e8..bf948b9 100644 --- a/docs/en/basic_tutorial/third-party_platform.md +++ b/docs/en/basic_tutorial/third-party_platform.md @@ -1,8 +1,8 @@ # Interconnection with Third-party Communities -The openMind Hub Client can connect to multiple communities so that you can upload and download files in different communities. Currently, the following communities are interconnected: +openMind Hub Client can connect to multiple communities so that you can upload and download files in different communities. Currently, the following communities are interconnected: -+ [Modelers](https://modelers.cn)): By default, this community is connected. All open interfaces are supported. ++ [Modelers](https://modelers.cn): This community is connected by default. All open interfaces are supported. + [Openl](https://openi.pcl.ac.cn): Only some interfaces are supported, covering repository creation and model upload and download. + [GitCode](https://gitcode.com): Only some interfaces are supported, covering file upload and download, and file acquisition in a repository. @@ -41,7 +41,7 @@ def http_get( #### om_hub_url -When obtaining the link for downloading private repository files, you need to add the **token** parameter. +When obtaining the link for downloading private repository files, you need to add the `token` parameter. ```python def om_hub_url( @@ -191,7 +191,7 @@ def try_to_load_from_cache( ```python import os - # Environment variables must be set before **openmind_hub** is imported. + # Environment variables must be set before openmind_hub is imported. os.environ["platform"] = "openi" from openmind_hub import * @@ -205,17 +205,17 @@ from openmind_hub import set_platform, create_repo, upload_folder, snapshot_down token = "token_in_openi" -# Download the PyTorch-NPU/t5_small model in the Modelers community to the **./t5_small** directory. +# Download the PyTorch-NPU/t5_small model in the Modelers community to the t5_small* directory. snapshot_download(repo_id="PyTorch-NPU/t5_small", local_dir="./t5_small") -# Download the FoundationModel/ChatGLM2-6B model in the specified community to the **./ChatGLM2-6B** directory. +# Download the FoundationModel/ChatGLM2-6B model in the specified community to the ./ChatGLM2-6B directory. # snapshot_download(repo_id="FoundationModel/ChatGLM2-6B", local_dir="./ChatGLM2-6B", platform="openi") # Set the default community. set_platform("openi") -# Create an **owner/cool-model** project and a **cool-model** in the specified community. (Use the actual user name and repository name.) +# Create an owner/cool-model project and a cool-model in the specified community. (Use the actual user name and repository name.) create_repo(repo_id="owner/cool-model", token=token) -# Upload files to the **cool-model** of the **owner/cool-model** project. +# Upload files to the cool-model of the owner/cool-model project. upload_folder(repo_id="owner/cool-model", folder_path="./t5_small", token=token) ``` @@ -229,7 +229,7 @@ The GitCode community adapts to the following methods. The parameters and behavi + upload_folder + create_commit + om_hub_download: `revision` supports only the branch name. An access token is required for downloading files from a public repository. -+ snapshot_download: revision supports only the branch name. An access token is required for downloading files from a public repository. ++ snapshot_download: `revision` supports only the branch name. An access token is required for downloading files from a public repository. + list_repo_tree: A maximum of 100 files can be listed at each level. ### Specifying the Community to Be Accessed diff --git a/docs/en/basic_tutorial/upload.md b/docs/en/basic_tutorial/upload.md index f136815..c5b6476 100644 --- a/docs/en/basic_tutorial/upload.md +++ b/docs/en/basic_tutorial/upload.md @@ -1,6 +1,6 @@ # Uploading Files -[Access tokens](../quick_start.md# access token) are required to upload files to a repository. +[Access tokens](../quick_start.md#access-token) are required to upload files to a repository. The openMind Hub Client controls file upload paths through blocklist and trustlist. The absolute path of a file cannot start with a path in the blocklist (except the default cache path `~/.cache/openmind`) and must be in the trustlist. The blacklist includes `["/etc", "/var", "/bin", "/boot", "/lib", "~/."]`. The default trustlist is `["/tmp", "~/"]` in Linux and `["~/", "D:", "E:", "F:"]` in Windows. You can configure the environment variable `HUB_WHITE_LIST_PATHS` (separate each path by commas) to configure the trustlist. In addition, the priority of the blocklist permission is higher than that of the trustlist permission. @@ -21,7 +21,7 @@ upload_file( ) ``` -+ **path_in_repo** (`str`): path for uploading files to the repository. ++ `path_in_repo` (`str`): path for uploading files to the repository. + `token` (required): access token that has the write permission on the target repository. + `path_or_fileobj` (required): path of the local file to be uploaded. + `repo_id` (required): target repository. diff --git a/docs/en/developer_tutorial/figures/cacert_download.png b/docs/en/developer_tutorial/figures/cacert_download.png new file mode 100644 index 0000000000000000000000000000000000000000..c67a10f0f60680bbb5d19223647cd87901396068 GIT binary patch literal 78857 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 literal 0 HcmV?d00001 diff --git a/docs/en/developer_tutorial/figures/certificate download 1.png b/docs/en/developer_tutorial/figures/certificate download 1.png deleted file mode 100644 index 28f7d94357e2e3a41c051bb27cddeec676142dee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8571 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 diff --git a/docs/en/developer_tutorial/figures/certificate download 2.png b/docs/en/developer_tutorial/figures/certificate download 2.png deleted file mode 100644 index a608a2ec18f14c063394e0f1be5c95508a9a0fdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11139 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 diff --git a/docs/en/developer_tutorial/figures/certificate download 3.png b/docs/en/developer_tutorial/figures/certificate download 3.png deleted file mode 100644 index 849e39819853f204bb28c85d5d78b32046007937..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16283 zcmd6O2|Sc-+xKNFS)v8mM@jC=p0${v1$QKsrEG~TVTSC>%&3I2jA*e7-3XaPb|#eN zwk0tbOpJ_uXP7ZF-zDAebHDHVeBb-L&vSq8_xb(&xGtyTJkR4ij^jLz|NodrmoMq_ za*1#O0KjW#aPA5KutLD^mz=x6H(8oZAHg3i-dFVXfTB*ZDe!^aS=U$>0E#i(TlO5_ z^Bzxw>)rscw{iQMr5Tau2mnw;!*jaV0&M4oO%NxWkxW{kOrXRK?v{oRnUd#DT4CzB z-vl%d?os?UzWZ$G{vPM2u(%@j`V{Y#>UT&UE=5#$f}52ok5qA>`-H)BM}^YmEQAF! zsc8OndeULdPg0vfY=|erHa2F%XWJ=_)1%#E{zA9{a4o+c4h4YFF-`~oywqUj1OVAs zfE559ANiku?Tuz@QK++^cM!LX*J|y22;v!alo%%_wcn_^x;3{qn3#v16J6*fj>5fH zu-_Hxgi!N1i{U6qU%)^8Fv}|>DXM0abs+q4tEk&?%h~FMT`onNyNbM>yEj&Ar$yJc za7(s_rqVg$76;GtD;^C6G)^MwHl5ZeXeMR2PiEB8#ani-D6DF%Vo641o!B7irkp1h zCVEohH0zaMV`5(NmKTu|kAgnWiDhMBhqXf)B&a!>R*p{Lk+QebST|v=nhd9>kUd!( zS5r3aEAcF^(&s38krxHWg3HFbyX(@|x;oXT@dagjin++|_rU<8K>8X!<>kJ*^;hfS z_aAV?O?1fTD*EB3u;KzknV%V1OdkEoYCC)3f!g|5^SxDv>q=}sI_i)}J&Y{%wJBeA z5=}8}MS_wiC-%rJwg_tvSGnidmiRjBEBcbt)_$Yr{K`%@wYp5hyIf9Ca{W|bcWu%L z=BsttP|1fNc!D44gLsT)l?B~RlcAZcT}~(=CW=2&qYZb#hZsWzv3%b;`LTZPRsxl- zdk?|})%$9RiE4TuR?8Wa#!99q;}M0T$Z*Q|l({o$k~kb0VR(Y8i->ZnvZS? z)tcr~dfih~4*SBV>x>C=N)s1~J!l@1XdbdEC7{9(kLoBpKwVfcBy`QrDA9t9$r{j% z@f!b{OLJXAtG)z8dz}kLuWP8X2Y-{Ol)I9V)b?R0kc}3@_f39Tk*&p=MYwhpf%dLx z1>)UH9@ZsBH~-r1pZ(c?HV`}Lm8H%cN2Wwq;}eH98+r3Ey?Ej(kr+|dQI#>?uiC+& z+m@sp-W>El)!auyB$=F9(6-B6tw;#gRG*mCS)0}I$10I0>`LZrd-YQwPqeVkIJaG% z_{qj*dH{RLcVo{7MTs2)b=Z!YC;rmJLkG^^%>cfvs;XSNND;Mj_Kp#CI66TXPGHo$ zKE2R8o}NS26!z~@BGJBt5UmY@(>ltHp(&%zo$EU8=nnW}4=jFze5);F43Fpve!i7N zIOO2e?o=bX7lN#YGiKn2zmWaiHFwtVq9Q_4uOr~LsN%T9Ap;k@P68h6P3X+10CoUXNUQ%SUK|AtbYeE&qbkhd8$8N7OQ@N@~>?@ z3T~OSZ~#`;by^!!M%+lfRt+c4iz=JgRgBEk!H1%!Drm6-SidmrSzL#2FS1r>ejyJt zgL6`Enw?Qib5PGX#{x&8lotk2p8_T%RV5H$}9hcD`fNpLPIGR93-rvana! z4b7k<3l-W$A0FQ-6R5TK5L`@Nl&SsRp^>AFUJg%}HS(x#6`j0L4KFlA)9vcrqkGe! z;%-*5BEy*0+Wt#+=O*UQkLk>5I$4F`ltzeK=3?s}f*U7rPQ!@7YObx5qGSrFep|!{ zvu-$Gc3>ut;!*8P6Cfo8e_loB0aq5LihfB)2hVS8`Pq#*Yt{*``C^z{PLvJcE#Gcl zh@5HntZ~itHAJ$TzJNVG#oE6{vpo30?1)kG!f*D`t)ebjHa7zr;o`B)4!z-;M`?+B zxalb&)BO^wD}$WAyebse45ex{5{l-QCYbj8M6Hv$1nfo*7C)i7cjY>>S~{)u^=!rV zf;_OzqpSuuse@tgTyi-fA#jyaPI*jX`ykK7&j0PuWm%SQiTtod7(Wd7`@aAH%!{2L z04}G>gl?^2(MJvAPv!u6@zPNzLgS=c$G9NUhVLp^Il$oW4DWeDZ4&rDMi=AyTrJ#bHS=LHEm6 zo_H=p`Dm}Y;W7%GI3VqQh)`|kTG5_S(r@S987zHq;xt?{j<3n!f~eT$LWt+F-nG0q zq=!yO*xMyNWXSIqNzdZ15v5ycQ}%2vpJ=`1%=v|UoE2?unjUqo`bzj_2#r2{*w=mR z8Q1cs>uY&%+@Z}pt?DJWy1Y(_^GK++M^liG-xHVW4By?Gc*4Nqmv-mV4f!qHzMl;^ z;@-0FfB1Yy{3vTn7tU&T?1DKoW0p4Gl|A?6ITs|?q#B95Y>eiUqlQ%4{bjpLd5~fq61EJamfGb=5A|aq(A|jk$ zdaUaK&j}e10>e^NWBs%<{L|4JF_q7NFS}#aLQ9GM_4Z#;&0Ge`j_$kSbcSYET8@?J z{K5=6tsf^#E^%bQzA=*a3o`*Wc zhn4n1rUatqSR9$&;lRN+sY4flDT=C;1A(jy3c)2S1&Ng$35{-YpBC zxhomoeMm`YeiFBEFh^X|R6pU3=!6}@xp63Cbk_uH%Q)8g3Nk@@A$K=7q+TZMBgW{$ zC-kzxZ>QBHVe8ObUU6i~f;myHmR0#~6{}KM+=xc>Dp}n=i%+~>AG3agWy-=hh(bSU zFsuP8&kFUFQ+TZ|kGKTwwneWrXq4_a8=nYl{+-vTkvI-vOAf+^3B*+D%N^0%h-@^t z_=m$SX>n}I2c^x3@6$7wJhsV~&>Mz+j+{W7zxZ*wpf}fC(yfaE|39Ifezg60SN@Kn zfsRbdO433RLtO9|<7;fdXUQA7sQ>CA1y~-9ki2`#I!-cqCzRabaBR9}kCM%q-)$JL z{u)qr$XA3O{3GZ{8ODDSfEmO)dU5c_OJBEU36nMyv;h9H*V^ttrAC2-oM3O(%BpLY z@pF@co=@4+vsnaG(BL|KvXBaO#^isR>M^996`8nuLpyC29i-L1Fg2A0h6E)ol#9YN z?Q)P&ytKErC1_@zO22$I>FUgnatW3^yU%3zi>T>Y(}Nd^95|H+MsNEAmAv3S#%&g1 zEYdcq*eoDE7mUd@+!8XOv!y!jLSRNOvX_>k`4AQ1=S|5G_Fs)G7{;$t zd=3>b~UNNAeS;I88{H z(4xx8Z2Ju3Z-YKMP*sEbZDZH~Fx>qh=cYaqLmlRXcza_ycp+0dSMNzxil|ho_pAh6 zrN1dZE19{#aKnd7w|{mO-zm%yUMUc_VTr@~xdE;dUN_QuY2m@Y#ybY`3Bv9hcW3DQ>Js~&BT%DHVEG*2 z+Mw&wGfPwmHKHLX<(b)%3qD8s!{|t~7h!NJwU0b23cEk0lY1|dR}h&Jl&*3D5<{oGA!_3ZzhQj& zwiWyZ7xuQ0;J6LzN?z9-|&6fQM(qG4;; z@)A3JuNxyqHWQl3N|zuOCK^KtxF@cl*6|-J>_`hlHZm=rm#v_B>c35f3}T&4f?trtq-^& z$vKz3(#+y`#!tnkLIKI_s55LynnO%z-ATS|NzC|+NW3ZrYoK^z%>5od{hT8{k;5hh z4B3DugFh__YZxa6lG98#0%&vPDfD0b1X7mrFI?lVz9rmSx8$Mnjr8!9 z#_Y898b+#G$VcpGKs$Bh0{snHZI6o5Qle`UwtjvcSX7LB@X-v^k@Vu$=8BBZ>gW;o zE@ip?BZFgQjE<@jR~_C%s@Zy{v?UNGu`y>qTVI|W;DLB84OgVQRR7ZCW$AhdBScNH zMR=ozyIfM`R>Zno6Bqbl4Rx)Dkcmknxxh#6N>p7%RqpnJM(1`cw zk+)tZx$c$Cz+#*sXu1nNz@9U~>xDsE8(zL%Ufpv^QU?oSvW7~I@)&X7?kL_J_q=EW z+f3wvydJBrL=%B8@CeOlww88nVg=TQ5X4kY6^q3qALTk1&yp=1C1-3dvuNr zLezaPqJc%&wudZ)0Iiw7$Y$TaDun-j`9nNz7=G|~*JAF6-q!ti2cu4Lp;@ zhnmAZ^HzAK=lnRzBkVy1cCz0c*yDr6=M_Y5=oHyeJTFa$wTiKPllp&xaEY)TY)pXy{^Bx6dt(C#QeqFlipS;&104TKUV=gRuHtxPHuD2X`9Z0+a!|5J}7+L zRIYj+2}Nc`vgfS0jCMurg;Y~<&w%)o@0z=GD3H=U zFUr>H5Y-H@ptmJ`71Q~~8sNeSQE#bUsI$@zTy|`H%PhdwP2V^_YYJ-=Wi}}XSj1U$ z6yIK>=NXqgh066W`BCVBHUWKeDUh#e8L3_KFHgzkFV&Emxjm{^Tmqrf>O&Yt>L!0xZI_C)Rk*?49fOccO zlp@?4=n<I^3FU?pN9%XLfK_K_r($Zv_pV{&Qw!e{+tn`XBQ_BSnPU)S(qI#j%@nkL!F!7p_H&j}RiN*=z#;_!lA z$!hR%h1`|$xjO>$R=X_^FcRjv=-zY2G_Hizz{lM>H1}b(bB@Ntx+>iWl%8ZyS>q;Y ziPejk;Fg}`o&4DZ%{RC}qV+|j$1IWRX7JfiwbGQz^=tPK)TttSzdCP9z|GYgeMaRy zAMuiESD{wEDK56v&92znTR|)zIv}B9q0U|DW*A9mk-WTom9|RQnEHwpxliwzY)b?$ z#6xN@&p8tdC$F)!I7Z8Pr{A{man?KAF|k2c#bA-caQN(-(PEiYAw9z^!j2OFh}0^^r2>!rZaL(W&NogZ(4^Y4M&EArgCB0LCRKkz;!R%k-SyAbM3NZmcr z>>4#SQM_~}c(APJmQJZCDRRN6nFu6|w(nR?}hzumHgISFGoY{+_72UsEmGz+}d~q7XAA_M#xcka?_k`Y!UV zmgaRc`b6@|?e~^BPD<%3pU2=kI)x!t&DN^d9j7zayoXW(~VFU3(nxCH$4w zq6n2U4E4NMSreP628khjrB#W)@XeSx+kvbYc)J^*-1{L?lOIvDbYZQ}3gK~R9lhLo z%%*_;iwKOh`}gLFrOO|$J`992%i@YnfTS7q!|m!}kps_?p8I$vJ7Bz6zOlsrNb`1& z{l|nSNN=BnP?Kx7B%=JGm)U}w3ofSTd;VdxzL0isXEBWh%WLF4nol3XFvN(P6H z&?jBADD0>8&O=s-Y6F5I%50xjt5^WuAGzjTNJ9sboaTRFlr&dPgs&eH78vNrsu6~j zA!82@j+6u-cp(W4|2KzA?X&kD?zvzuZ_mujL)gwdUER9XRDa74)dSmCR(-Q95Ytd| z*Zd;zZIplaqk`k1VsYfI4E4-xK1uuF^t{M*%z?vTO}~}0RT`;Juz50U{(;QaqS*A= ziD?$*q$+J%pA!0RFKabhODDgowhjU1G~YuT9x4&{W)0nK^dkorOZ<1V$9;yAw$x-(-Fdm!YQ`A& z`b-^vVY{n|=nLByd(&jyDl+G6=OpUmt9fH@B0-|_MKzff;7i*%`{RSe&sQIMTL7-y zZWID~!~1Jpp1S=lLOzT@`Rt@$EndJzs>`~ildNCE)otq?a#C3APCT+JEZ>PaWK9Yd zpgc>wsMxCwoN>HzZ*0bnNiBT6{)aQ%r-fr){!u54ARF{A|KTsQMT`3m{&S_opPbHL zW*e!b-TqOofC!LutH-~9TK;z`srhX{@cNp|cD|8oa=_zV$c;342{UJ*;q{)LvITwT zUZ!U7HMvU}mj)%jD83jS6r|TAyXm}1m+6|~@tD@MdljonpVt73>eKV}tS#p`*%S1r ztL{aUowQXS`3mc6&X_F4yW(f#TK6j8Ik`X-cKKfLOW>~e`D-ACvCIfe1m5ZE^3`Xd zLzX6IvxbQR6D1Sy+vUOB=XaODU z4-G5&{nC&re(&=T-hykQO_N=?%(q~9xi26NQ08U3+FT&g{p$tUcHiO{ZbpTN^=k78 z$Wo%QE>R@3i5$z;Gu}V@_?+0@`!*@E*6y{PI-#dnTqbe6N9NXxXa*oou_kB^)02wj z_IJCQckBdP{T3*d|4DXlY#y;YB)9%>;xs}gu@GyIo8eiJC{j4IM(FSlNtJG`Ua)61 zkbV1lY^dTWWXJ$W+OsP&@oy#l@UhU@y3VCF4s{x@$C>+5h9k%LR;9icxx_Y{vxzf_ z$V#!6s(b>(&qKvBitfH*GniDT)-)AXv$mw;HTPWTICFsBgx3exN4d!&-7na)NC;MB z@YcyKHx?ItlVLSr9=f$9^|cP;10=0O3!`~RX>j(Gx3~obxYg;j9%?Fx0TO52@BfOI zVen5+GLDjA@#Dj*FSo%Z<=_6gQvA;V{O&yvNz?|2Th%z{++mo3VA1AE1{1`MFduMW zZH_nJ#ac#qp5UoIz+Ju)H*5S0L!S!O1edW+B*%w`FP!%%fyMf8}!q zml5R5)&kvXgkE!Yb`}k%Z|_8XP+ceRw;Lw~drz3`Z=Qd)ZS$Vn`|?){t=XJN>7^~; za9}mv3}tv_Bd=!pxq|Z^(Z1sdoyo z6=KbDnDNe`tCGXkZ6vX0rl_$GK0asMNfAhgGx4@)q*~}le18$E$HEKg*4LogX3}^e zLPA2lq-Ko%C@BKEWxqxvGEv!cI%*FCZ8m87YQuhrVVOQeNFpW3H0d-(`7QN4@(d%csmAybToO_EuZE8*r4Vm1Uv z@{=|!`=K1IP2Q6Vq29JL;lU)O%8Zfuxduv(1pCiF(iJ*4Nb8F(C!uUgWV)Qe$l zSrs8Dl~XRpk6&YX^)%rF=qP8+fnT z`y>WZ3-isq-LE5|KVaIT2gW~OT9l>Nb;{L}0p>>P+7`80BL?|Wxcr$h0MHJDla4yo ztaP5vUR+uyAk=ABjT%2Z1%aE=_->?=wEPCCZ0Yyk13085N&>e^R8^z9JoH+s=;Qq^ zMgUOO6A^jsL;r1b5wL&hZ zH~tPPoUjkJ_d|(uSAH`_(gJjg;dJ5TXVH~r59C-zFR-?>KR(YXY)Z^Vsk253@Btrs z!3r?x@;B0bB76Al>R~a_E1y2Zu*dl@NzKZ0$D7{@?~eP7Sgkw=0LnjVhRI`+4yET& z8hsBR|2yDR()>dB(sR*znb`$e6rt}DnH~7R^G_MTzt~;VqCFN;nfIJL+?3pQ$M^1) zH}cgTC-zfyD&fZfz=sn;c?9P1i866*X1;gdx%wk?0}@u>3zwXo;D)kP&8sA`gF3XCAXS{cX#gr@79 zv({%BPmGjo{D`rW!8nIMd!lxdr$9QTK=z(gXzAz?TeC+{$^CV9ggkcJ~Ai=NQ34JO;)~l37 zT1${}9gRQ3H66Q_Ytu(hFEpRi{K5?k9p5RYuJL?QFDfPpJdlz-bsh>oEh?{9ydbgA zUiOIUF{n?Z%;j#&w5ERhvMY!2pD>*BnAMK z8}69ui5WoAMj*0(KWFk{anZ7=WRG{BQS%;xl;ZwnCMBvdV82@#=+rLGhGk}0dzC%`LRrTsmx_Uo5Yp}>cwZ781$ zqJP#Z1doxpAZ35I(C%nr_@jW+A-MU1z3NCHF}*})AM8%@Tg5$s^fQ;9w=D%E_z_rJ z-s$)wwX;1{19^JZe)*fE9aiJ7HM0K`lj++o zJ!vRkr1O!UKGI8F<%PJ|VLoG<#nWZS8(cVX+L*>>GtEBW zuGPchYk;O*cyM(f2IQA0F+VL}U3M}vZVjW*$B}bFr(mN09ToL8$Hrswfw64#51#X~ z#}3b_h({5rOPv)S%U7zJFTQrjJ}geb6=LO%PkL0Zo9YMGK!4H3ZzLzvlz!|@*ixXJzT<)PMHB<~qrnNLu8 z+oi;-)G>8=zZp$+yo&I#!M$_g5Pqr%rAIlvYZ4XBs^8&KokpPgCYBBF->;7)j@Q_4 zDPr@O-2pugbAfa}?_tvnLX(?q+Zxi9HkYeig&wV$4Dx640I-WYPQ`8Y*vjr4m3TKe zWuoWsb(P~4#!mH)?)@FA&wjBWZ}AAEHgL5jq{>yw%@v986}5SjW)~x{-PC@^DqCE* zZc#*6Hw`|dbb<{YC8woZ~$e{9iDqzIM2N$Y%V|3&7w zpO?MZ@PqM)%Y+5C#`WiwvGdIp%%zNuaGk9CVv}8S1nh!E*GBr@Qi@8u{VB3c;ws%3 z8dgQ5?`f~~%k0?b4+tLW8V>?(KX?aV)401o^P7YcuOQ$lv~!<|sdn7?gnaY4+d%}V zxcEaqoUzfZ4w2*8snr)Pmn`iF5*Z3Cp$^jjJa7A7#FD=xkR<@jK=7|W;w)~#4wes_k;+(#0fDlLy+5}4 z7pnDtT$FwTcouS9)iJ6+2>Tm0ekoVwEqYs9^Wg$@+OGvu#7k2Z@XcjqY`{&vpJ`B} zUPH3%P3ZyOnq$5GH;F4OK;%wDWn21B+`Hz_y!!18FXiej(`^C({s)Y`P)CEWjkhN7 zHZrhv)O#RWL0kJ-Ki=vV){cL~`cb1W%sYF%VChI=j*W)@u(S3&WkxMqaX)MK z^JXXzy8EZKM0$GvnIkXxctXIt;DCz97_k3-``fYZhfiDqSM@9HGh$O%mIL;;(>ohJP%y5+92_F zhhyw@k8ts}0`E4j$0OMcyx}FoXb#|J!p{Atre~?~`fP)iS2Q$gAM3|;fw<3~ZhuYgx%8Dgf$#D$wwShF!}pe7>HcsYmB!6?9_V*f^E_Y{y3@BZWTgja zzP>cgue^6RZFd~M;Kcp&oRArQugd&Of^Ah~@i0GieiS%-$3BLv2DejoK{^|I9IDVJ z4eWC9RM@fD;5L3Py|_aS4bq{f3WQQHSE%|&V;+50yVmrRDpE~z?&AdQJU zHR{}(-h(;NG_~3???CL|PyB%qtQ4q%~I!eS{yeDVMXj=mcz&8jeU_oc}h%D&gKe~$iEH*g*=qLK8?F)bU0N52cPFFTt!A|RL zqfp~&|0oRgFZL5sU@YTVTEV4xf>HH7xoeE5lIiZT(xBusxfEAlErQG{4eT9G1lt5} zfV@F0rFXmIS0c^EeHJmSw%0KJ%&XlzkVh}yzOdkgw0iq>=x!4MWi`iG#<9IUJ@9A0 z5rxdHB+|@;OjC-t_f>v-00iARM!OA}iB7fX{XAo8xy~!~PRoa!0=D)~d`Tm&c9%bD zO6qjO27=5c4mH_iQKBKrfz5F<4p*ip=S!u;1Udho8efj~bG!+6KC@-o)_ zT$}utwNmsXIUZDPV4~>OZ(VGl;Yqt52XJJUA+MF#0ZAFo_~#(J99+O6T^p~+{-8q* zyeV-v_H|mJC8TGg8a^#ve?n&i0i$?nL?401V^DIun2;+-ySxST&S9dQ|)UVE^gXIFw6K__fb*c=RX27{lw*TL4j z9CO$ml9xnU`n-}!ymX)$*b!|IFHQazkMDoeJW7GEj5qQ@r48dL?bkYR`Cwlz0DNO? zCocbge9G&er^x?bpl$yQ!V6vjfBnbj{z7iis!)*IFK52XY}*2dZsqesuU(~(^S7x= zxRP0ijO`&chi@LSa zB^f;$M4B-f&HxGQIB85DFUl$+TE_iV`~}XVYsH=+GLf&E`fpo@UOi8(6SYH6Gpx-( zwkNPO)}`URILz-#F6M=89>G6l-;UU8_v#j!@EKK53o|gLNW5{=+X#@m(Z`9oc_FM9 zgP&G2oeq#IeCk8=|0$N^--|5^YnJzl&%^O?EIrIrG>;ORp8J@uA0T$%iHO6C#zU+I z|F!@%_mCV15reWt!rSA@sj1+fy;v>@Og@#Y-F!3sNytuYtJ5TYZvOt#TJBGE>APvU zJF>@3tU!D@rwn3>+bV$Ohnps7YR~LCdTXVvw~e`+(VM~CBKIla`Ue?JW$5KJ-~P%c zjA`tjrIg$+exf=pZf};&R2lll{eFoIz185XTXjC}>!IpsZco|YX&a`T5ayQYa=$Kp zs-QOt%Q%Icef(#=bVQisRvr$E=hwJ^xqU~Euy{T0D?^kEl7U>mzBZMcF~3FaPVof- zSF)EFcF>}_wXt{9mjuSm&0A}4dJ)qk$!l$InGe2GpBPs|br1omC0j2gbF~+iNQ)I@ zt6mZ_SOYh}SX0cH35mf%ebGhvAX#$eMgoiDbFJH9d^t^MxdV~Z9UVZ?jGABCtLwr6 z<*<8Nm$w!zdUMg#Eb4}xEjaH6zITOLzLy)zD5Ne&L3`)WS87EDkz`j&%Y^fqpC}}q zIUV7<5l~4bGiN2f`!u6A3KTB|kF+6B)(gyc)Uhaq0x0ujVdz%jFr#NaaDGL#j`5XV znZM1+xpZ(tR27c0w(#oQ-@~zqW{}Z-C=YX3R##})%YEz2sVGbV8l@Q)Z&8qeTnfbN zus;f*txQ9wUoJ0CGYit0I=x3Q>~QORdSZ3sH- zqnpClPoA6tN3O6)Q?CyFIIYF+-)~<{Y{ZXzUB{;AE8;GRF-xga1s=d=YZX#dI(%+& ziyt*IL0N|RT)*V_a>L>aIX6AaJ@t+sG1Ds% zN1y&QiWc-1Nzxw`!)8#!BzDzZN6vIG-6fx;GTh2>$fwI`=s5!2?L801Mu%EjwKdr> z{apxWmPQXIb}?-w-MR|c48EepV2q7sbU|m`<}KgBRoX%ag^6d*Q_v+^wDQRsIlDhQ zayY-nm5doqw5=%P{MQMzkp&`GCsf4zVit18Q!hVdE=E9SS1o*jM^LuqF?IB1`Z80~ z!(1mF#i*e+Ix|h_ZEXtX#I1UTnRO`q{>Os0OnL#7_Kvz0IE-KEDo{9U`G|T$a;B5! zb!Oce>e0|1rGP4-)+?aRYOiCKrZJ7hQxpXY1mn0CqRF%NPuiMEp7a(w(!fkD+Qfa6 z*(-DZ;+<%lCJv2*-@$$t4~=2w)`|i?gXyxhyfVG%Z1C7R3tbO`-# zk?|JE?%c3mfLOvt^Y2$2W|ieXWXjrETMxYj9c^XIKVR|~X1M4-gvEwmTl&x(?=Q(p zD}4TEtPy{jGdX9kkW^$CbJLnr zwAh;|a!3Eijw=*CtIy>2l0g@wo(i1xluKdB@G(2?6I+Pf^P`lgt-`4PBXaxLc{A`uW;aWPY`ZF?&3toM=k(vB6 kYX4vTw97-f+ZvN?5mOrbHQz}E0KW{+UpiN$ck}-L0=kiraR2}S diff --git a/docs/en/developer_tutorial/figures/certificate_download_1.png b/docs/en/developer_tutorial/figures/certificate_download_1.png index 28f7d94357e2e3a41c051bb27cddeec676142dee..854cff7de291d3eb00962e5bec6114d60b8ba810 100644 GIT binary patch literal 14733 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 literal 8571 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 diff --git a/docs/en/developer_tutorial/figures/certificate_download_2.png b/docs/en/developer_tutorial/figures/certificate_download_2.png index a608a2ec18f14c063394e0f1be5c95508a9a0fdf..d71bd54c9983345d258d32f6c9e03b445c6e9881 100644 GIT binary patch literal 15225 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 q(9jCKYfyY6gW)A{m8(@gC56G_;C~1sr70A literal 11139 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 diff --git a/docs/en/developer_tutorial/trouble_shooting.md b/docs/en/developer_tutorial/trouble_shooting.md index 8443854..b533100 100644 --- a/docs/en/developer_tutorial/trouble_shooting.md +++ b/docs/en/developer_tutorial/trouble_shooting.md @@ -1,10 +1,10 @@ # Troubleshooting -When using openMind Hub Client, you may encounter some problems. This document collects some common problems and their solutions. We will continue to update this document to help you troubleshoot faults. +When using openMind Hub Client, you may encounter some issues. This document collects some common issues and their solutions. We will continue to update this document to help you troubleshoot faults. ## Certificate Verification Failure: CERTIFICATE_VERIFY_FAILED -There are multiple causes for certificate verification failures. The following lists the solutions to different errors. +There are multiple causes for certificate verification failures. The following lists the solutions to different issues. Solution 1: If the Python root CA certificate does not match the requests library version, use either of the following methods to locate the fault. @@ -36,7 +36,7 @@ Solution 1: If the Python root CA certificate does not match the requests librar 2. Obtain the latest certificate from and download the cacert.pem file. - ![img.png](figures/cacert download.png) + ![img.png](figures/cacert_download.png) 3. Use the new cacert.pem certificate to replace the original one. Back up the certificate before the replacement. @@ -48,9 +48,9 @@ Solution 2: Manually configure the certificate of the Modelers community. 1. Download the certificate from Modelers Community. The following describes the procedure for downloading the certificate using Google Chrome. The procedure for downloading the certificate using other browsers is similar. In Windows, double-click the certificate to install it. In Linux, refer to the following procedure. - ![img.png](figures/certificate download 1.png) ![img_1.png](figures/certificate download 2.png) + ![img.png](figures/certificate_download_1.png) ![img_1.png](figures/certificate_download_2.png) - ![img_2.png](figures/certificate download 3.png) + ![img_2.png](figures/certificate_download_3.png) 2. Move the downloaded certificate to the `/usr/local/share/ca-certificates/` directory. 3. Run `update-ca-certificates`. diff --git a/docs/en/install.md b/docs/en/install.md index d3d199a..f3a66b6 100644 --- a/docs/en/install.md +++ b/docs/en/install.md @@ -1,6 +1,6 @@ -# openMind Hub Client Installation +# Installing openMind Hub Client -Before the installation, you need to configure the local environment. The openMind Hub Client supports Python 3.8, 3.9, and 3.10. For details, see [Installation Description](https://docs.python.org/3/using/index.html). Compatibility with other versions is not guaranteed. +Before the installation, you need to configure the local environment. openMind Hub Client supports Python 3.8, 3.9, and 3.10. For details, see [Installation Description](https://docs.python.org/3/using/index.html). Compatibility with other versions is not guaranteed. ## Installation Guide @@ -11,22 +11,22 @@ To avoid compatibility issues between dependencies in different projects, Python - Create and activate a Python virtual environment. ```shell - # Create a Python virtual environment named **your_venv_name**. + # Create a Python virtual environment named your_venv_name. python3 -m venv /path/to/your_venv_name - # Activate the **your_venv_name** virtual environment. + # Activate the your_venv_name virtual environment. source /path/to/your_venv_name/bin/activate ``` - Create and activate a conda virtual environment. ```shell - # Create a Python 3.8 virtual environment named **your_venv_name**. + # Create a Python 3.8 virtual environment named your_venv_name. conda create -n your_venv_name python=3.8 - # Activate the **your_venv_name** virtual environment. + # Activate the your_venv_name virtual environment. conda activate your_venv_name ``` -2. Install the openMind Hub Client in pip mode as required. +2. Install openMind Hub Client in pip mode as required. - Use the default installation mode, which can interact with the Modelers community. @@ -56,9 +56,9 @@ python -c "from openmind_hub import repo_info; print(repo_info('PyTorch-NPU/t5_s The detailed information about the t5_small model will be displayed in the command output. -## Uninstallation +## Uninstalling openMind Hub Client -Uninstall openMind Hub Client: +Run the following command to uninstall openMind Hub Client: ```shell pip uninstall openmind_hub diff --git a/docs/en/overview.md b/docs/en/overview.md index 05c4d18..bc47410 100644 --- a/docs/en/overview.md +++ b/docs/en/overview.md @@ -1,3 +1,3 @@ # Overview -The openMind Hub Client helps you interact with the Modelers community without leaving the development environment, covering operations like file upload and download. For details, see [Quick Start](./quick_start.md). +openMind Hub Client allows you to interact with the Modelers community without leaving the development environment, covering operations like file upload and download. For details, see [Quick Start](./quick_start.md). diff --git a/docs/en/quick_start.md b/docs/en/quick_start.md index d851304..7e4e5a1 100644 --- a/docs/en/quick_start.md +++ b/docs/en/quick_start.md @@ -24,7 +24,7 @@ For details, see [Downloading Files](basic_tutorial/download.md). ## Access Token -Access tokens are required when you interact with Modelers, such as accessing private repository resources, creating repositories, and uploading files. Register or log in to Modelers, [create an access token](https://modelers.cn/my/tokens), and keep it secure. The token content is displayed only when it is created. +Access tokens are required when you interact with Modelers, such as accessing private repository resources, creating repositories, and uploading files. [Create an access token](https://modelers.cn/my/tokens) and keep it secure. The token content is displayed only when it is created. ## File Upload @@ -47,7 +47,7 @@ For details, see [Uploading Files](./basic_tutorial/upload.md). ## Advanced Use -The openMind Hub Client provides you with a simple way to interact with the Modelers community using Python. To learn more about how to manage files and model repositories in the community, refer to the following: +openMind Hub Client provides you with a simple way to interact with the Modelers community using Python. To learn more about how to manage files and model repositories in the community, refer to the following documents: + [Download](./basic_tutorial/download.md) files from a repository. + [Upload](./basic_tutorial/upload.md) files to a repository. diff --git a/docs/en/release_note.md b/docs/en/release_note.md index b76032b..81a4702 100644 --- a/docs/en/release_note.md +++ b/docs/en/release_note.md @@ -1,3 +1,145 @@ # Release Notes -This document is being translated. We will upload it ad soon ad possible. +## Description of openMind Hub Client V0.8.0 + +### New Features + +#### New Functions + +- The **create_commit**, **upload_folder**, and **om_hub_download** APIs are added to upload and download a dataset in the Openl community. +- The **upload_folder**, **upload_file**, **create_commit**, **om_hub_download**, **snapshot_download**, and **list_repo_tree** APIs are supported by the GitCode community. + +#### Document Updates + +- Documents related to the OmFileSystem class and class methods are added. + +### Resolved Issues + +- The value of the environment variable **HUB_WHITE_LIST_PATHS** ends with a slash (/), and it does not take effect. + +### Known Issues + +None + +## Description of openMind Hub Client V0.7.1 + +## Version Updates + +### Update + +Changed the default domain name of the Modelers community to . + +### Resolved Issues + +Resolved the issue that `requests.exceptions.ChunkedEncodingError` occasionally occurs during download. + +## Description of openMind Hub Client V0.7.0 + +### New Features + +- openMind Hub Client supports interconnection with multiple communities and provides unified standard APIs. Currently, the function of uploading and downloading model files is verified based on third-party communities. + +### Previous Features + +### Repository Management + +You can manage repositories on the openMind platform, including creating and deleting repositories of various types, creating and deleting branches, and searching for and filtering repositories. + +- Universal APIs + + | API/Class | Description | + |----------------|------------------------| + | create_repo | Creates a repository. | + | delete_repo | Deletes a repository. | + | repo_info | Obtains information about a repository. | + | list_repo_tree | Obtains the list of files in a repository. | + | create_branch | Creates a branch. | + | delete_branch | Deletes a branch. | + | OmFileSystem | Accesses files in a remote repository as if they were local. | + | Repository | Encapsulates a series of Git commands and uses them to manage repositories.| + +- Model-related APIs + + | API/Class | Description | + |-----------------------|---------------| + | model_info | Obtains information about a model. | + | list_models | Searches for a model. | + | ModelFilter | Encapsulates filter criteria available for model search.| + +- Dataset-related APIs + + | API/Class | Description | + |-----------------|-----------| + | dataset_info | Obtains information about a dataset. | + | list_datasets | Searches for a dataset. | + | DatasetInfo | Encapsulates dataset information. | + | DatasetCard | Encapsulates dataset card information.| + | DatasetCardData | Encapsulates dataset card information.| + +- Space-related APIs + + | API | Description | + |---------------|-----------| + | space_info | Obtains information about a space. | + | list_spaces | Searches for a space. | + | restart_space | Restarts a space app.| + +### File Upload and Download + +You can upload and download files on the openMind platform. + +- Upload APIs + + | API/Class | Description | + |-----------------------|-------------| + | upload_file | Uploads a file. | + | upload_folder | Uploads files in a folder. | + | create_commit | Uploads or deletes a file. | + | CommitOperationAdd | Encapsulates information about the file to be uploaded.| + | CommitOperationDelete | Encapsulates information about the file to be deleted.| + +- Download APIs + + | API | Description | + |------------------------|-------------| + | om_hub_download | Downloads a single file. | + | snapshot_download | Downloads files from a repository. | + | get_om_file_metadata | Obtains file information. | + | om_hub_url | Concatenates the file download URL. | + | http_get | Bottom-layer API for downloading a file. | + | try_to_load_from_cache | Searches for the path of a file in the cache.| + +### Interconnection Between openMind Toolchain and openMind Platform + +Provides public APIs, classes, and constants to enable the openMind toolchain or other user software to connect to the openMind platform. In addition to the preceding repository management APIs and upload/download APIs, other APIs such as public errors and constants are also provided. + + | API/Class/Constant | Description | + |-------------------------|-----------------| + | OM_HOME | Default cache path of downloaded files. | + | OM_HUB_CACHE | Default cache path of downloaded files. | + | default_cache_path | Default cache path of downloaded files. | + | _CACHED_NO_EXIST | Default object when the file does not exist. | + | REGEX_COMMIT_HASH | Regular expression matching rule of the hash value. | + | list_metrics | Lists metrics. | + | whoami | Obtains user information. | + | get_full_repo_name | Obtains the complete repository name. | + | metadata_update | Updates a repository card. | + | om_raise_for_status | Throws an exception based on the status code of the response body.| + | build_om_headers | Constructs a request header. | + | OMValidationError | Verification error. | + | EntryNotFoundError | File not exist. | + | RepositoryNotFoundError | Repository not exist. | + | RevisionNotFoundError | Branch not exist. | + | GatedRepoError | Restricted access to a repository. | + | OmHubHTTPError | Network request error. | + | LocalEntryNotFoundError | Local file not exist. | + +### Document Development + +Includes quick start, basic tutorials, developer tutorials, and API reference. You can view details about the preceding APIs in the API document. + +## Resolved Issues + +- Resolved the issue that the resumable download function of `snapshot_download` is unavailable. +- Resolved the issue that `local_files_only` of `snapshot_download` is abnormal. +- Resolved the issue that a repository can be downloaded even if `repo_id` and `repo_type`are different from the actual repository name and type. -- Gitee