diff --git a/DESCRIPTION b/DESCRIPTION index 9e59232..b3acef7 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: eurlex Type: Package Title: Retrieve Data on European Union Law -Version: 0.3.5 +Version: 0.3.6 Authors@R: c(person(given = "Michal", family = "Ovadek", role = c("aut", "cre", "cph"), @@ -10,7 +10,6 @@ Authors@R: c(person(given = "Michal", Description: Access to data on European Union laws and court decisions made easy with pre-defined 'SPARQL' queries and 'GET' requests. License: GPL-3 Encoding: UTF-8 -LazyData: true Depends: R (>= 3.4.0) Imports: @@ -19,6 +18,7 @@ Imports: xml2, tidyr, httr, + curl, rvest, rlang, stringr, diff --git a/NEWS.md b/NEWS.md index 99b3bda..bdef761 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,14 @@ +# eurlex 0.3.6 + +## Major changes + +- `elx_run_query()` now fails gracefully in presence of internet/server problems +- `elx_fetch_data()` now automatically fixes urls with parentheses (e.g. "32019H1115(01)" used to fail) + +## Minor changes + +- minor fixes to vignette + # eurlex 0.3.5 ## Major changes diff --git a/R/elx_curia_list.R b/R/elx_curia_list.R index 0de6f4c..d8a7024 100644 --- a/R/elx_curia_list.R +++ b/R/elx_curia_list.R @@ -8,7 +8,8 @@ #' @param parse If `TRUE`, references to cases and appeals are parsed out from `case_info` into separate columns #' @return #' A data frame containing case identifiers and information as character columns. Where the case id -#' contains a hyperlink to Eur-Lex, the CELEX identifier is retrieved as well. +#' contains a hyperlink to Eur-Lex, the CELEX identifier is retrieved as well. Hyperlinks to Eur-Lex +#' disappeared from more recent cases. #' @importFrom rlang .data #' @export #' @examples diff --git a/R/elx_fetch_data.R b/R/elx_fetch_data.R index bd45ad8..f205e5e 100644 --- a/R/elx_fetch_data.R +++ b/R/elx_fetch_data.R @@ -22,6 +22,19 @@ elx_fetch_data <- function(url, type = c("title","text","ids"), language <- paste(language_1,", ",language_2,";q=0.8, ",language_3,";q=0.7", sep = "") + if (stringr::str_detect(url,"celex")){ + + clx <- stringr::str_extract(url, "(?<=celex\\/).*") %>% + stringr::str_replace_all("\\(","%28") %>% + stringr::str_replace_all("\\)","%29") %>% + stringr::str_replace_all("\\/","%2F") + + url <- paste("http://publications.europa.eu/resource/celex/", + clx, + sep = "") + + } + if (type == "title"){ response <- httr::GET(url=url, diff --git a/R/elx_run_query.R b/R/elx_run_query.R index 277283f..18873f5 100644 --- a/R/elx_run_query.R +++ b/R/elx_run_query.R @@ -20,9 +20,7 @@ elx_run_query <- function(query = "", endpoint = "http://publications.europa.eu/ curlready <- paste(endpoint,"?query=",gsub("\\+","%2B", utils::URLencode(query, reserved = TRUE)), sep = "") - sparql_response <- httr::GET(url = curlready, - httr::add_headers('Accept' = 'application/sparql-results+xml') - ) + sparql_response <- graceful_http(curlready) sparql_response_parsed <- sparql_response %>% elx_parse_xml() @@ -31,3 +29,49 @@ elx_run_query <- function(query = "", endpoint = "http://publications.europa.eu/ } +#' Fail http call gracefully +#' +#' @importFrom rlang .data +#' +#' @noRd +#' + +graceful_http <- function(remote_file) { + + try_GET <- function(x, ...) { + tryCatch( + httr::GET(url = x, + #httr::timeout(1000000000), + httr::add_headers('Accept' = 'application/sparql-results+xml')), + error = function(e) conditionMessage(e), + warning = function(w) conditionMessage(w) + ) + } + + is_response <- function(x) { + class(x) == "response" + } + + # First check internet connection + if (!curl::has_internet()) { + message("No internet connection.") + return(invisible(NULL)) + } + + # Then try for timeout problems + resp <- try_GET(remote_file) + if (!is_response(resp)) { + message(resp) + return(invisible(NULL)) + } + + # Then stop if status > 400 + if (httr::http_error(resp)) { + httr::message_for_status(resp) + return(invisible(NULL)) + } + + return(resp) + +} + diff --git a/README.md b/README.md index 51d079c..0781d5a 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,12 @@ Please consider contributing to the maintanance and development of the package b ## Latest changes +### eurlex 0.3.6 + +- `elx_run_query()` now fails gracefully in presence of internet/server problems +- `elx_fetch_data()` now automatically fixes urls with parentheses (e.g. "32019H1115(01)" used to fail) +- minor fixes to vignette + ### eurlex 0.3.5 - it is now possible to select all resource types available with `elx_make_query(resource_type = "any")`. Since there are nearly 1 million CELEX codes, use with discretion and expect long execution times diff --git a/doc/eurlexpkg.html b/doc/eurlexpkg.html index 495b333..5a049e3 100644 --- a/doc/eurlexpkg.html +++ b/doc/eurlexpkg.html @@ -453,14 +453,14 @@

elx_run_query(): Execute SPARQL queries

# elx_make_query("directive") %>% # elx_run_query()
as_tibble(results)
-#> # A tibble: 4,317 x 3
+#> # A tibble: 4,335 x 3
 #>   work                                   type                            celex  
 #>   <chr>                                  <chr>                           <chr>  
 #> 1 http://publications.europa.eu/resourc~ http://publications.europa.eu/~ 31979L~
 #> 2 http://publications.europa.eu/resourc~ http://publications.europa.eu/~ 31989L~
 #> 3 http://publications.europa.eu/resourc~ http://publications.europa.eu/~ 31984L~
 #> 4 http://publications.europa.eu/resourc~ http://publications.europa.eu/~ 31966L~
-#> # ... with 4,313 more rows
+#> # ... with 4,331 more rows

The function outputs a data.frame where each column corresponds to one of the requested variables, while the rows accumulate observations of the resource type satisfying the query criteria. Obviously, the more data is to be returned, the longer the execution time, varying from a few seconds to several minutes, depending also on your connection.

The first column always contains the unique URI of a “work” (legislative act or court judgment) which identifies each resource in Cellar. Several human-readable identifiers are normally associated with each “work” but the most useful one is CELEX, retrieved by default.2

One column you should always pay attention to is type (as in resource_type). The URIs contained there reflect the FILTER argument in the SPARQL query, which is manually pre-specified. All resources are indexed as being of one type or another. For example, when retrieving directives, the results are going to return also delegated directives, which might not be desirable, depending on your needs. You can filter results by type to make the necessary adjustments. The queries are expansive by default in the spirit of erring on the side of over-inclusiveness rather than vice versa.

@@ -531,12 +531,12 @@

EuroVoc descriptors

select(celex, eurovoc, labels) #> Joining, by = "eurovoc" #> # A tibble: 10 x 3 -#> celex eurovoc labels -#> <chr> <chr> <chr> -#> 1 32012H00~ http://eurovoc.europa.eu~ informácie pre spotrebitela,vzdelávanie s~ -#> 2 31962H08~ http://eurovoc.europa.eu~ blahobyt -#> 3 31974H04~ http://eurovoc.europa.eu~ Francúzska republika,Francúzsko -#> 4 31996H05~ http://eurovoc.europa.eu~ formulár +#> celex eurovoc labels +#> <chr> <chr> <chr> +#> 1 32012H0~ http://eurovoc.euro~ informácie pre spotrebitela,vzdelávanie spotreb~ +#> 2 31962H0~ http://eurovoc.euro~ blahobyt +#> 3 31974H0~ http://eurovoc.euro~ Francúzska republika,Francúzsko +#> 4 31996H0~ http://eurovoc.euro~ formulár #> # ... with 6 more rows @@ -581,7 +581,7 @@

Application

count(force) %>% ggplot(aes(x = force, y = n)) + geom_col() -

+

Directives become naturally outdated with time. It might be all the more interesting to see which older acts are thus still surviving.

dirs %>% 
   filter(!is.na(force)) %>% 
@@ -591,7 +591,7 @@ 

Application

theme(axis.text.y = element_blank(), axis.line.y = element_blank(), axis.ticks.y = element_blank())
-

+

We want to know a bit more about the directives from 1970s that are still in force today. Their titles could give us a clue.

dirs_1970_title <- dirs %>% 
   filter(between(as.Date(date), as.Date("1970-01-01"), as.Date("1980-01-01")),
@@ -600,14 +600,14 @@ 

Application

as_tibble() print(dirs_1970_title) -#> # A tibble: 70 x 6 +#> # A tibble: 67 x 6 #> work type celex date force title #> <chr> <chr> <chr> <chr> <chr> <chr> #> 1 http://publications~ http://publicatio~ 31975~ 1975~ true Council Directive ~ #> 2 http://publications~ http://publicatio~ 31977~ 1977~ true First Commission D~ #> 3 http://publications~ http://publicatio~ 31977~ 1977~ true Council Directive ~ #> 4 http://publications~ http://publicatio~ 31973~ 1973~ true Council Directive ~ -#> # ... with 66 more rows
+#> # ... with 63 more rows

I will use the tidytext package to get a quick idea of what the legislation is about.

library(tidytext)
 library(wordcloud)
@@ -619,7 +619,7 @@ 

Application

filter(!grepl("\\d", word)) %>% bind_tf_idf(word, celex, n) %>% with(wordcloud(word, tf_idf, max.words = 40, scale = c(1.8,0.1)))
-

+

I use term-frequency inverse-document frequency (tf-idf) to weight the importance of the words in the wordcloud. If we used pure frequencies, the wordcloud would largely consist of words conveying little meaning (“the”, “and”, …).

This is an extremely basic application of the eurlex package. Much more sophisticated methods can be used to analyse both the content and metadata of European Union legislation. If the package is useful for your research, please consider citing the accompanying paper.4

diff --git a/docs/404.html b/docs/404.html index 21866c3..1b82b8d 100644 --- a/docs/404.html +++ b/docs/404.html @@ -79,7 +79,7 @@ eurlex - 0.3.5 + 0.3.6 diff --git a/docs/articles/eurlexpkg.html b/docs/articles/eurlexpkg.html index dfc9641..97ce20e 100644 --- a/docs/articles/eurlexpkg.html +++ b/docs/articles/eurlexpkg.html @@ -39,7 +39,7 @@ eurlex - 0.3.5 + 0.3.6 @@ -249,14 +249,14 @@

# elx_make_query("directive") %>% # elx_run_query()
as_tibble(results)
-#> # A tibble: 4,317 x 3
+#> # A tibble: 4,335 x 3
 #>   work                                   type                            celex  
 #>   <chr>                                  <chr>                           <chr>  
 #> 1 http://publications.europa.eu/resourc~ http://publications.europa.eu/~ 31979L~
 #> 2 http://publications.europa.eu/resourc~ http://publications.europa.eu/~ 31989L~
 #> 3 http://publications.europa.eu/resourc~ http://publications.europa.eu/~ 31984L~
 #> 4 http://publications.europa.eu/resourc~ http://publications.europa.eu/~ 31966L~
-#> # ... with 4,313 more rows
+#> # ... with 4,331 more rows

The function outputs a data.frame where each column corresponds to one of the requested variables, while the rows accumulate observations of the resource type satisfying the query criteria. Obviously, the more data is to be returned, the longer the execution time, varying from a few seconds to several minutes, depending also on your connection.

The first column always contains the unique URI of a “work” (legislative act or court judgment) which identifies each resource in Cellar. Several human-readable identifiers are normally associated with each “work” but the most useful one is CELEX, retrieved by default.2

One column you should always pay attention to is type (as in resource_type). The URIs contained there reflect the FILTER argument in the SPARQL query, which is manually pre-specified. All resources are indexed as being of one type or another. For example, when retrieving directives, the results are going to return also delegated directives, which might not be desirable, depending on your needs. You can filter results by type to make the necessary adjustments. The queries are expansive by default in the spirit of erring on the side of over-inclusiveness rather than vice versa.

@@ -328,12 +328,12 @@

select(celex, eurovoc, labels) #> Joining, by = "eurovoc" #> # A tibble: 10 x 3 -#> celex eurovoc labels -#> <chr> <chr> <chr> -#> 1 32012H00~ http://eurovoc.europa.eu~ informácie pre spotrebitela,vzdelávanie s~ -#> 2 31962H08~ http://eurovoc.europa.eu~ blahobyt -#> 3 31974H04~ http://eurovoc.europa.eu~ Francúzska republika,Francúzsko -#> 4 31996H05~ http://eurovoc.europa.eu~ formulár +#> celex eurovoc labels +#> <chr> <chr> <chr> +#> 1 32012H0~ http://eurovoc.euro~ informácie pre spotrebitela,vzdelávanie spotreb~ +#> 2 31962H0~ http://eurovoc.euro~ blahobyt +#> 3 31974H0~ http://eurovoc.euro~ Francúzska republika,Francúzsko +#> 4 31996H0~ http://eurovoc.euro~ formulár #> # ... with 6 more rows @@ -399,14 +399,14 @@

as_tibble() print(dirs_1970_title) -#> # A tibble: 70 x 6 +#> # A tibble: 67 x 6 #> work type celex date force title #> <chr> <chr> <chr> <chr> <chr> <chr> #> 1 http://publications~ http://publicatio~ 31975~ 1975~ true Council Directive ~ #> 2 http://publications~ http://publicatio~ 31977~ 1977~ true First Commission D~ #> 3 http://publications~ http://publicatio~ 31977~ 1977~ true Council Directive ~ #> 4 http://publications~ http://publicatio~ 31973~ 1973~ true Council Directive ~ -#> # ... with 66 more rows +#> # ... with 63 more rows

I will use the tidytext package to get a quick idea of what the legislation is about.

library(tidytext)
 library(wordcloud)
diff --git a/docs/articles/eurlexpkg_files/figure-html/firstplot-1.png b/docs/articles/eurlexpkg_files/figure-html/firstplot-1.png
index 8cd02e0..fb5531a 100644
Binary files a/docs/articles/eurlexpkg_files/figure-html/firstplot-1.png and b/docs/articles/eurlexpkg_files/figure-html/firstplot-1.png differ
diff --git a/docs/articles/eurlexpkg_files/figure-html/unnamed-chunk-9-1.png b/docs/articles/eurlexpkg_files/figure-html/unnamed-chunk-9-1.png
index e7a0faf..4f506c3 100644
Binary files a/docs/articles/eurlexpkg_files/figure-html/unnamed-chunk-9-1.png and b/docs/articles/eurlexpkg_files/figure-html/unnamed-chunk-9-1.png differ
diff --git a/docs/articles/eurlexpkg_files/figure-html/wordcloud-1.png b/docs/articles/eurlexpkg_files/figure-html/wordcloud-1.png
index bf1c904..3e993fd 100644
Binary files a/docs/articles/eurlexpkg_files/figure-html/wordcloud-1.png and b/docs/articles/eurlexpkg_files/figure-html/wordcloud-1.png differ
diff --git a/docs/articles/index.html b/docs/articles/index.html
index 1a3e54b..7ec683f 100644
--- a/docs/articles/index.html
+++ b/docs/articles/index.html
@@ -79,7 +79,7 @@
       
       
         eurlex
-        0.3.5
+        0.3.6
       
     
diff --git a/docs/authors.html b/docs/authors.html index 6a118cd..9aeb2d0 100644 --- a/docs/authors.html +++ b/docs/authors.html @@ -79,7 +79,7 @@ eurlex - 0.3.5 + 0.3.6 diff --git a/docs/index.html b/docs/index.html index 064a425..5cb0e21 100644 --- a/docs/index.html +++ b/docs/index.html @@ -38,7 +38,7 @@ eurlex - 0.3.5 + 0.3.6 @@ -126,6 +126,17 @@

Latest changes

+
+

+eurlex 0.3.6

+
    +
  • +elx_run_query() now fails gracefully in presence of internet/server problems
  • +
  • +elx_fetch_data() now automatically fixes urls with parentheses (e.g. “32019H1115(01)” used to fail)
  • +
  • minor fixes to vignette
  • +
+

eurlex 0.3.5

diff --git a/docs/news/index.html b/docs/news/index.html index 01d636d..5293868 100644 --- a/docs/news/index.html +++ b/docs/news/index.html @@ -79,7 +79,7 @@ eurlex - 0.3.5 + 0.3.6
@@ -129,22 +129,44 @@

Changelog

-
-

-eurlex 0.3.5 Unreleased +
+

+eurlex 0.3.6 Unreleased

Major changes

    +
  • +elx_run_query() now fails gracefully in presence of internet/server problems
  • +
  • +elx_fetch_data() now automatically fixes urls with parentheses (e.g. “32019H1115(01)” used to fail)
  • +
+
+
+

+Minor changes

+
    +
  • minor fixes to vignette
  • +
+
+
+
+

+eurlex 0.3.5 2021-03-14 +

+
+

+Major changes

+
  • it is now possible to select all resource types available with elx_make_query(resource_type = "any"). Since there are nearly 1 million CELEX codes, use with discretion and expect long execution times
  • results can be restricted to a particular directory code with elx_make_query(directory = "18") (directory code “18” denotes Common Foreign and Security Policy)
  • results can be restricted to a particular sector with elx_make_query(sector = 2) (sector code 2 denotes EU international agreements)
-
+

-Minor changes

+Minor changes

-
+

-Minor changes

+Minor changes @@ -184,9 +206,9 @@

eurlex 0.3.3 Unreleased

-
+

-Minor changes

+Minor changes
  • hotfix for critical bug in xml parsing that scrambled column with legal basis where this was requested
@@ -196,18 +218,18 @@

eurlex 0.3.2 Unreleased

-
+

-Major changes

+Major changes
  • improvement to legal basis harvesting thanks to help from Eur-Lex insiders
  • legal basis results are now slightly more comprehensive and correct
  • legal basis results now include a new column detailing the “suffix” (paragraph, subparagraph, etc.) in string form
-
+

-Minor changes

+Minor changes
  • minor updates to documentation
@@ -217,9 +239,9 @@

eurlex 0.3.1 2020-09-11

-
+

-Minor changes

+Minor changes
  • elx_fetch_data() now prefers CELEX-based URLs (instead of Cellar URIs) as input, as they appear to yield fewer missing documents
  • @@ -230,9 +252,9 @@

    eurlex 0.3.0 Unreleased

    -
    +

    -Major changes

    +Major changes
    • elx_fetch_data("text") now retrieves plain text from html, pdf and MS Word documents
    • @@ -246,9 +268,9 @@

      eurlex 0.2.3 Unreleased

      -
      +

      -Minor changes

      +Minor changes
      • fixed serious bugs in elx_curia_list()
      • @@ -261,9 +283,9 @@

        eurlex 0.2.2 Unreleased

        -
        +

        -Major changes

        +Major changes
        • elx_council_votes() made fully operational
        • @@ -274,9 +296,9 @@

          eurlex 0.2.1 2020-08-19

          -
          +

          -Minor changes

          +Minor changes
          • optimization, reducing dependencies, etc.
          @@ -286,9 +308,9 @@

          eurlex 0.2.0 Unreleased

          -
          +

          -Major changes

          +Major changes
          • addition of proposals and national implementing laws to possible SPARQL queries
          • EuroVoc topics, retrievable in all EU languages, can now be included in SPARQL results
          • @@ -296,9 +318,9 @@

          • added elx_curia_list() to retrieve full list of EU court cases
          -
          +

          -Minor changes

          +Minor changes
          • switch from XML to xml2
          • SPARQL package dependency removed
          • diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml index c90be6b..0fa514a 100644 --- a/docs/pkgdown.yml +++ b/docs/pkgdown.yml @@ -3,5 +3,5 @@ pkgdown: 1.5.1 pkgdown_sha: ~ articles: eurlexpkg: eurlexpkg.html -last_built: 2021-03-14T13:10Z +last_built: 2021-07-26T17:15Z diff --git a/docs/reference/elx_council_votes.html b/docs/reference/elx_council_votes.html index 07882fe..b963fc5 100644 --- a/docs/reference/elx_council_votes.html +++ b/docs/reference/elx_council_votes.html @@ -80,7 +80,7 @@ eurlex - 0.3.5 + 0.3.6
          diff --git a/docs/reference/elx_curia_list.html b/docs/reference/elx_curia_list.html index 4a9e65f..34544dd 100644 --- a/docs/reference/elx_curia_list.html +++ b/docs/reference/elx_curia_list.html @@ -81,7 +81,7 @@ eurlex - 0.3.5 + 0.3.6
          @@ -159,7 +159,8 @@

          Arg

          Value

          A data frame containing case identifiers and information as character columns. Where the case id -contains a hyperlink to Eur-Lex, the CELEX identifier is retrieved as well.

          +contains a hyperlink to Eur-Lex, the CELEX identifier is retrieved as well. Hyperlinks to Eur-Lex +disappeared from more recent cases.

          Examples

          # \donttest{ diff --git a/docs/reference/elx_fetch_data.html b/docs/reference/elx_fetch_data.html index cc5b191..80e47ab 100644 --- a/docs/reference/elx_fetch_data.html +++ b/docs/reference/elx_fetch_data.html @@ -80,7 +80,7 @@ eurlex - 0.3.5 + 0.3.6
          diff --git a/docs/reference/elx_label_eurovoc.html b/docs/reference/elx_label_eurovoc.html index b20829e..9fa1c4a 100644 --- a/docs/reference/elx_label_eurovoc.html +++ b/docs/reference/elx_label_eurovoc.html @@ -80,7 +80,7 @@ eurlex - 0.3.5 + 0.3.6
          diff --git a/docs/reference/elx_make_query.html b/docs/reference/elx_make_query.html index 12f39b1..b589600 100644 --- a/docs/reference/elx_make_query.html +++ b/docs/reference/elx_make_query.html @@ -6,7 +6,7 @@ -Create SPARQL quries — elx_make_query • eurlex +Create SPARQL queries — elx_make_query • eurlex @@ -46,10 +46,10 @@ - + +Note that not all resource types are compatible with default parameter values." /> @@ -82,7 +82,7 @@ eurlex - 0.3.5 + 0.3.6
          @@ -128,7 +128,7 @@
          @@ -136,7 +136,7 @@

          Create SPARQL quries

          Generates pre-defined or manual SPARQL queries to retrieve document ids from Cellar. List of available resource types: http://publications.europa.eu/resource/authority/resource-type . -Note that not all resource types are compatible with the pre-defined query.

          +Note that not all resource types are compatible with default parameter values.

          elx_make_query(
          diff --git a/docs/reference/elx_parse_xml.html b/docs/reference/elx_parse_xml.html
          index 958f88d..14515a4 100644
          --- a/docs/reference/elx_parse_xml.html
          +++ b/docs/reference/elx_parse_xml.html
          @@ -80,7 +80,7 @@
                 
                 
                   eurlex
          -        0.3.5
          +        0.3.6
                 
               
          diff --git a/docs/reference/elx_run_query.html b/docs/reference/elx_run_query.html index 53a9bc9..5e2700a 100644 --- a/docs/reference/elx_run_query.html +++ b/docs/reference/elx_run_query.html @@ -81,7 +81,7 @@ eurlex - 0.3.5 + 0.3.6
          @@ -162,7 +162,7 @@

          Value

          Examples

          # \donttest{ -elx_run_query(elx_make_query("directive", include_force = TRUE))
          #> # A tibble: 4,317 x 4 +elx_run_query(elx_make_query("directive", include_force = TRUE))
          #> # A tibble: 4,335 x 4 #> work type celex force #> <chr> <chr> <chr> <chr> #> 1 http://publications.europa.eu/res~ http://publications.europa.e~ 31979~ false @@ -175,7 +175,7 @@

          Examp #> 8 http://publications.europa.eu/res~ http://publications.europa.e~ 31966~ false #> 9 http://publications.europa.eu/res~ http://publications.europa.e~ 31974~ false #> 10 http://publications.europa.eu/res~ http://publications.europa.e~ 31982~ false -#> # ... with 4,307 more rows

          # } +#> # ... with 4,325 more rows
          # }
          @@ -177,7 +177,7 @@

          elx_make_query()

          -

          Create SPARQL quries

          +

          Create SPARQL queries

          diff --git a/eurlex.Rproj b/eurlex.Rproj new file mode 100644 index 0000000..b9255bc --- /dev/null +++ b/eurlex.Rproj @@ -0,0 +1,20 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX + +AutoAppendNewline: Yes +StripTrailingWhitespace: Yes + +BuildType: Package +PackageUseDevtools: Yes +PackageInstallArgs: --no-multiarch --with-keep.source diff --git a/man/elx_curia_list.Rd b/man/elx_curia_list.Rd index 347a92f..4b0199d 100644 --- a/man/elx_curia_list.Rd +++ b/man/elx_curia_list.Rd @@ -17,7 +17,8 @@ which contains cases from Court of Justice, General Court and Civil Service Trib } \value{ A data frame containing case identifiers and information as character columns. Where the case id -contains a hyperlink to Eur-Lex, the CELEX identifier is retrieved as well. +contains a hyperlink to Eur-Lex, the CELEX identifier is retrieved as well. Hyperlinks to Eur-Lex +disappeared from more recent cases. } \description{ Harvests data from lists of EU court cases from curia.europa.eu.